Rq: рдЖрдпрд╛рдд рддреНрд░реБрдЯрд┐: рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╛рдо рдХрд╛ рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВред рдирд┐рдпрдВрддреНрд░рдХреЛрдВред рд▓реАрдбреНрд╕_рдПрдлрдмреА

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдорд╛рд░реНрдЪ 2018  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: rq/rq

рдирдорд╕реНрдХрд╛рд░ !

рдореБрдЭреЗ рдЖрд░рдХреНрдпреВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред

рдпрд╣ рдореЗрд░реЗ рдРрдк рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

app/
    run.py
    project/
        __init__.py
        clock.py
        views.py
        worker.py
        controllers/
           __init__.py
           leads_fb.py

рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдЕрдкрдирд╛ рдРрдк рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдШрдбрд╝реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдпрд╣ рдХреЛрдб рд╣реИ:

from apscheduler.schedulers.background import BackgroundScheduler
from rq import Queue, get_current_job
from rq.job import Job 
from worker import conn
from controllers import leads_fb
import logging
import os


q = Queue(connection=conn)
sched = BackgroundScheduler()

def enque_jobs():
    info = '1aooEOTBQz1pAW915-JonL3Jh2mhclR5EZTHGotFBe7s||blah blah blah'
    job = q.enqueue(leads_fb.prueba, info)  
    print 'This job is run every 3 seconds.'

if os.environ.get("WERKZEUG_RUN_MAIN") == "true":
    sched.add_job(enque_jobs, 'interval', seconds=3)
    sched.start()

log = logging.getLogger('apscheduler.executors.default')
# log.setLevel(logging.INFO)  # DEBUG

# fmt = logging.Formatter('%(levelname)s:%(name)s:%(message)s')
h = logging.StreamHandler()
# h.setFormatter(fmt)
log.addHandler(h)

рдлрд┐рд░ рдШрдбрд╝реА rq рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬреЛ рдХрд┐ work.py рд╣реИ:

import os

import redis
from rq import Worker, Queue, Connection

listen = ['high', 'default', 'low']

redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')

conn = redis.from_url(redis_url)

if __name__ == '__main__':
    with Connection(conn):
        worker = Worker(map(Queue, listen))
        worker.work()

рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдХрддрд╛рд░рдмрджреНрдз рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рд╣реИ рдирд┐рдпрдВрддреНрд░рдХ/leads_fb.py рд╣реИ:

from wksh import init_wksh, get_last_row, write_in_cell

def prueba(info):
    print 'aaaaa'
    info = info.split('||')
    id_client = info[0]
    str_prueba = info[1]
    wksh = init_wksh(id_client)
    print wksh
    row = get_last_row(wksh)

    write_in_cell(wksh,'A'+str(row),str_prueba)
    print 'funciona  ' + str(row)

рдЬрдм рдореИрдВ рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ run.py рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рдРрдк рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ: ImportError: project.controllers.leads_fb рдирд╛рдо рдХрд╛ рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ

рдореЗрд░реА run.py рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпрд╣ рдХреЛрдб рд╣реИ:

from project import app
from project import worker
from project import clock

if __name__ == "__main__":
    app.run(debug=True,host='127.0.0.1', port=1234)

рдФрд░ рдореЗрд░реА рдРрдк/рдкреНрд░реЛрдЬреЗрдХреНрдЯ/__init__.py рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпрд╣ рд╣реИ

from flask import Flask

app = Flask(__name__)
app.config.from_object('config')

from . import views
from . import worker
from . import clock

рдХреГрдкрдпрд╛ рд╕рд╣рд╛рдпрддрд╛ рдХреАрдЬрд┐рдП!! рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рдЕрдЯрдХрд╛ рд╣реБрдЖ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореИрдВрдиреЗ рдЕрдиреНрдп рдереНрд░реЗрдб рдореБрджреНрджреЛрдВ рдХреЛ рдкрдврд╝рд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдкрд╛рдпрдердирдкреИрде рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдореЗрд░реЗ рдЖрд░рдХреНрдпреВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред @selwin

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@mateocam рдпрд╣ рд╕рд┐рд░реНрдл рдирд┐рдпрдорд┐рдд рдЕрдЬрдЧрд░ sys рдкрде рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рд╕рд╛рдордЧреНрд░реА рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕реЗ рд╕рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реИ рдпрд╛ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред
рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд░рдЦреЗрдВ, рдХрд╣реАрдВ рдЬреАрдердм рдкрд░, рддрд╛рдХрд┐ рдХреЛрдИ рдЗрд╕реЗ рдХреНрд▓реЛрди рдХрд░ рд╕рдХреЗ рдФрд░ рдЗрд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХреЗ

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдЕрдкрдиреА рд╡рд░реНрдХрд░.py рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдд рдкрде рдХреИрд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдБ? рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдореИрдВ рд╡рд░реНрдХрд░ рдХреЛ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди 'rqworker' рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореЗрд░рд╛ рдРрдк рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрдХрд░.py рдлрд╝рд╛рдЗрд▓ рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдФрд░ рдХрд╣рд╛рдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрдБ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗ рдФрд░ рд╣рд░реЛрдХреВ рдореЗрдВ рднреА рддреИрдирд╛рдд рд╣реЛ?

рдореИрдВ рдЕрдкрдиреА рд╡рд░реНрдХрд░.py рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛рдд рдкрде рдХреИрд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдБ? рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдореИрдВ рд╡рд░реНрдХрд░ рдХреЛ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди 'rqworker' рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореЗрд░рд╛ рдРрдк рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрдХрд░.py рдлрд╝рд╛рдЗрд▓ рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЕрдВрджрд░ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдФрд░ рдХрд╣рд╛рдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрдБ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗ рдФрд░ рд╣рд░реЛрдХреВ рдореЗрдВ рднреА рддреИрдирд╛рдд рд╣реЛ? @nvie рдореИрдВрдиреЗ рдЖрд░рдХреНрдпреВ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рдЦреЛрдЬ рдХреА рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ! рдХреГрдкрдпрд╛ рдорджрдж рдХреАрдЬрд┐рдПред

рдЖрдк rq worker рдХрдорд╛рдВрдб рдХреЛ --path рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@selwin рдореИрдВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рдмреБрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБ: rq рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ --рдкрде рдкрд░рд┐рдпреЛрдЬрдирд╛/
рдФрд░ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмреБрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдХрд┐рд╕рдХреА рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ?

@mateocam рдпрд╣ рд╕рд┐рд░реНрдл рдирд┐рдпрдорд┐рдд рдЕрдЬрдЧрд░ sys рдкрде рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рд╕рд╛рдордЧреНрд░реА рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕реЗ рд╕рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЪрд▓рд╛рдирд╛ рд╣реИ рдпрд╛ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред
рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд░рдЦреЗрдВ, рдХрд╣реАрдВ рдЬреАрдердм рдкрд░, рддрд╛рдХрд┐ рдХреЛрдИ рдЗрд╕реЗ рдХреНрд▓реЛрди рдХрд░ рд╕рдХреЗ рдФрд░ рдЗрд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХреЗ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

sivabudh picture sivabudh  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

MW3000 picture MW3000  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mitakuye picture mitakuye  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

f0cker picture f0cker  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jkryanchou picture jkryanchou  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ