Celery: рдПрдХ рд╣реА рдХрддрд╛рд░ рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ: RabbitMQ рдореЗрдВ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдмрдирд╛рдИ рдЬрд╛ рд░рд╣реА рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдЕрдХреНрддреВре░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: celery/celery

рдЬрд╛рдВрдЪ рд╕реВрдЪреА

  • [X] рдореИрдВрдиреЗ рдЗрд╢реНрдпреВ рдореЗрдВ celery -A proj report рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рд╣реИред
    (рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдЕрдЬрд╡рд╛рдЗрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
    рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рднрд╛рд╡рд┐рдд)ред
  • [x] рдореИрдВрдиреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╕реЗрд▓реЗрд░реА рдХреА master рд╢рд╛рдЦрд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рд╣реИред
software -> celery:3.1.0 (Cipater) kombu:3.0.37 py:2.7.10
            billiard:3.3.0.23 py-amqp:1.4.9
platform -> system:Darwin arch:64bit imp:CPython
loader   -> celery.loaders.default.Loader
settings -> transport:amqp results:redis://localhost:6379/0

CELERY_QUEUES:
    (<unbound Queue Test_Queue -> <unbound Exchange test_exchange(topic)> -> myapp.tasks.some_tasks.#>,
 <unbound Queue Test_Queue -> <unbound Exchange test_exchange(topic)> -> myapp.tasks.more_tasks.#>)
RABBITMQ_MANAGEMENT_URL: 'localhost:15672'
CELERY_IMPORTS:
    ('myapp.tasks.some_tasks', 'myapp.tasks.more_tasks')
CELERY_ROUTES:
    (<myapp.routers.DefaultRouter object at 0x1077952d0>,)
BROKER_URL: 'amqp://guest:********<strong i="13">@localhost</strong>:5672//'
CELERY_RESULT_BACKEND: 'redis://localhost:6379/0'

рдкреНрд░рдЬрдирди рдХреЗ рдЪрд░рдг

  1. рд╡рд┐рднрд┐рдиреНрди рд░реВрдЯрд┐рдВрдЧ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╖рдп рд╡рд┐рдирд┐рдордп рдкрд░ 2 рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдмрдирд╛рдПрдВ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ CELERY_QUEUES рдореЗрдВ рдПрдХ рд╣реА рдХрддрд╛рд░ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред
CELERY_QUEUES = (
    Queue("Test_Queue", default_exchange, routing_key="myapp.tasks.some_tasks.#"),
    Queue("Test_Queue", default_exchange, routing_key="myapp.tasks.more_tasks.#"),
)
  1. рдПрдХ рдЕрдЬрд╡рд╛рдЗрди рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рддреБрд░рдВрдд рдЪрд╛рд▓реВ рдХрд░реЗрдВ
  2. RabbitMQ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХрдВрд╕реЛрд▓ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ http://localhost :15672/
  3. рдХрддрд╛рд░ рдЯреИрдм рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд┐рд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдХрддрд╛рд░
  4. рджреЗрдЦреЗрдВ рдХрд┐ рдХреЗрд╡рд▓ 1 рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореМрдЬреВрдж рд╣реИ
    screen shot 2016-10-31 at 5 52 03 pm

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

  1. рд░реВрдЯрд┐рдВрдЧ рдХреБрдВрдЬреА myapp.tasks.some_tasks.# рд╕рд╛рде рджреВрд╕рд░рд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
  2. рдЗрд╕реЗ рд╕реЗрд▓реЗрд░реА рдПрдПрдордХреНрдпреВрдкреА рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
celery amqp
queue.bind Test_Queue test_exchange Key1
queue.bind Test_Queue test_exchange Key2

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

  1. рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХрддрд╛рд░ рдирд╛рдо рдХрд╛ рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдмрдВрдзрди Rabbitmq . рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ

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

CELERY_QUEUES рдХреНрдпреВ_рдирд╛рдо рд╕реЗ рдХреНрдпреВ рддрдХ рдореИрдкрд┐рдВрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЪреВрдВрдХрд┐ рдЖрдк рджреЛ рдХреНрдпреВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде, рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреЛрдореНрдмреВ рдореЗрдВ рдХрдИ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдХрддрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

from kombu import Exchange, Queue, binding
default_exchange = Exchange('default', type='direct')

CELERY_QUEUES = (
    Queue('Test_Queue', [
         binding(default_exchange, routing_key='myapp.tasks.some_tasks.#'),
         binding(default_exchange, routing_key='myapp.tasks.more_tasks.#'),
    ]),
)

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

CELERY_QUEUES рдХреНрдпреВ_рдирд╛рдо рд╕реЗ рдХреНрдпреВ рддрдХ рдореИрдкрд┐рдВрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЪреВрдВрдХрд┐ рдЖрдк рджреЛ рдХреНрдпреВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде, рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХреЛрдореНрдмреВ рдореЗрдВ рдХрдИ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдХрддрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

from kombu import Exchange, Queue, binding
default_exchange = Exchange('default', type='direct')

CELERY_QUEUES = (
    Queue('Test_Queue', [
         binding(default_exchange, routing_key='myapp.tasks.some_tasks.#'),
         binding(default_exchange, routing_key='myapp.tasks.more_tasks.#'),
    ]),
)

рдорд╣рд╛рди! рдмрд╕ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рджреЛрдиреЛрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рддрддреНрдХрд╛рд▓ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд░реВрдЯрд┐рдВрдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рд▓рд╛рдпрдХ рд╣реИ? рдореИрдВ рдЖрдЬ рд░рд╛рдд рдпрд╛ рдХрд▓ рдХрд┐рд╕реА рд╕рдордп рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдБ

рдЬрд╝рд░реВрд░! рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЗрд╕реЗ рд░рдЦрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛ :)

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

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

baratrion picture baratrion  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

myisis picture myisis  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

asmodehn picture asmodehn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jheld picture jheld  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aoerliang picture aoerliang  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ