
рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдХреЗ рдЕрдзреНрдпрдпрди рдкрд░
рдкрд╣рд▓реЗ рдкрд╛рда рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ, RabbitMQ
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рджреВрд╕рд░реЗ рдкрд╛рда рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рд╕рднреА рдЙрджрд╛рд╣рд░рдг, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рдЕрдЬрдЧрд░ рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрднреА рднреА рдЙрдиреНрд╣реЗрдВ рд╕рдмрд╕реЗ
рд▓реЛрдХрдкреНрд░рд┐рдп рднрд╛рд╖рд╛рдУрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ ред
рдЯрд╛рд╕реНрдХ рдХреА рдХрддрд╛рд░реЗрдВ
рдкрд╣рд▓реЗ рдкрд╛рда рдореЗрдВ, рд╣рдордиреЗ рджреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦреЗ: рдПрдХ рдиреЗ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ, рджреВрд╕рд░реЗ рдиреЗ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдЗрд╕ рдкрд╛рда рдореЗрдВ, рд╣рдо рдПрдХ рдХрддрд╛рд░ рдмрдирд╛рдПрдВрдЧреЗ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рддрд░рд╣ рдХреА рдХрддрд╛рд░ рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдЕрднреА рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЬрдм рддрдХ рдпрд╣ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рджреЗрд░реА рд╣реЛ рд░рд╣реА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдПрдХ рдХрд╛рд░реНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛, рдФрд░ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдпрд╣ рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЬрдм рдЖрдк рдХрдИ рд╣реИрдВрдбрд▓рд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдСрдкрд░реЗрд╢рди рдХрд╛ рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрд╣рд╛рдВ HTTP рдЕрдиреБрд░реЛрдз рдХреЗ рджреМрд░рд╛рди рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдХрд╛рд░реНрдп рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рдкрд┐рдЫрд▓реЗ рдкрд╛рда рдореЗрдВ, рд╣рдордиреЗ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!" рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдерд╛ред рдФрд░ рдЕрдм рд╣рдо рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВрдЧреЗред рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдЫрд╡рд┐ рдХреЛ рдЖрдХрд╛рд░ рджреЗрдирд╛ рдпрд╛ рдПрдХ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдирд╛, рдЪрд▓реЛ
time.sleep () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдЯрдм рдмрдирд╛рддреЗ рд╣реИрдВред рдХрд╛рд░реНрдп рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╕рдВрджреЗрд╢ рд▓рд╛рдЗрди рдореЗрдВ рдЕрдВрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП "рдЪрд▓реЗрдЧрд╛"ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╣реИрд▓реЛ ..." рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдп 3 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЪрд▓реЗрдЧрд╛ред
рд╣рдо
рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ
рд╕реЗрдВрдбрд╣реЛрдо рдкреНрд░реЛрдЧреНрд░рд╛рдо
рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛
рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдордирдорд╛рдиреЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реЛред рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣рдорд╛рд░реА рдмрд╛рд░реА рдореЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдЧрд╛, рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдЧрд╛ред рдЗрд╕реЗ
new_task.py рдХрд╣реЗрдВ :
import sys message = ' '.join(sys.argv[1:]) or "Hello World!" channel.basic_publish(exchange='', routing_key='hello', body=message) print " [x] Sent %r" % (message,)
рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо
рд░рд┐рдорд╛рд░реНрдХ рднреА рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: рдореИрд╕реЗрдЬ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрддрд╛рд░ рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ред рдЗрд╕реЗ
рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХрд╣реЛ :
import time def callback(ch, method, properties, body): print " [x] Received %r" % (body,) time.sleep( body.count('.') ) print " [x] Done"
рдЪрдХреНрд░реАрдп рд╡рд┐рддрд░рдг
рдХрд╛рд░реНрдп рдХрддрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рднреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрдИ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдмрд╕ рд╣реИрдВрдбрд▓рд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
рдПрдХ рд╕рд╛рде рджреЛ
рдХрд╛рд░реНрдпрдХрд░реНрддрд╛-рдЙрдиреНрдореБрдЦ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рддреЗ рд╣реИрдВред рджреЛрдиреЛрдВ рдХреЛ рдХрддрд╛рд░ рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ? рдЕрдм рд╣рдо рджреЗрдЦреЗрдВрдЧреЗред
рдЖрдкрдХреЛ рддреАрди рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рдореЗрдВ,
рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХрд╛рдо рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпреЗ рджреЛ рдЧреНрд░рд╛рд╣рдХ рд╣реЛрдВрдЧреЗ - C1 рдФрд░ C2ред
shell1$ python worker.py [*] Waiting for messages. To exit press CTRL+C
shell2$ python worker.py [*] Waiting for messages. To exit press CTRL+C
рддреАрд╕рд░реА рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╣рдо рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдХреЛрдИ рднреА рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ:
shell3$ python new_task.py First message. shell3$ python new_task.py Second message.. shell3$ python new_task.py Third message... shell3$ python new_task.py Fourth message.... shell3$ python new_task.py Fifth message.....
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдХреНрдпрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛:
shell1$ python worker.py [*] Waiting for messages. To exit press CTRL+C [x] Received 'First message.' [x] Received 'Third message...' [x] Received 'Fifth message.....'
shell2$ python worker.py [*] Waiting for messages. To exit press CTRL+C [x] Received 'Second message..' [x] Received 'Fourth message....'
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, RabbitMQ рдЕрдЧрд▓реЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╕рдорд╛рди рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдХреЛ рдЪрдХреНрд░реАрдп
[ рдЧреЛрд▓-рд░реЙрдмрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо] рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рддреАрди рдпрд╛ рдЕрдзрд┐рдХ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рд╕рдВрджреЗрд╢ рдХреА рдкреБрд╖реНрдЯрд┐
рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдХреБрдЫ рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣реИрдВрдбрд▓рд░ рдиреЗ рдХрд╛рд░реНрдп рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рд╕рдВрджреЗрд╢ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣реА RabbitMQ рдиреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рджрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╣реИрдВрдбрд▓рд░ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рд╕рдВрджреЗрд╢ рдЦреЛ рдЬрд╛рдПрдЧрд╛ред рд╡рд┐рддрд░рд┐рдд рд╕рдВрджреЗрд╢ рдЬреЛ рдЕрднреА рддрдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реБрдП рд╣реИрдВ, рд╡реЗ рднреА рдЦреЛ рдЬрд╛рдПрдВрдЧреЗред
рд▓реЗрдХрд┐рди рд╣рдо рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХреЛ рдЦреЛрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рдирд┐рдХрд╛рд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдВрджреЗрд╢ рджреВрд╕рд░реЗ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рддрд╛рдХрд┐ рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдХреЛрдИ рдЦреЛрдпрд╛ рд╣реБрдЖ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рд╣реИ, RabbitMQ рд╕рдВрджреЗрд╢ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкреБрд╖реНрдЯрд┐ (
ack ) рдЧреНрд░рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ RabbitMQ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ RabbitMQ рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдХреА, рддреЛ RabbitMQ рд╕рдордЭреЗрдЧрд╛ рдХрд┐ рд╕рдВрджреЗрд╢ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрдЧрд╛ред рддреЛ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рднреА рд╕рдВрджреЗрд╢ рдЦреЛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛, рднрд▓реЗ рд╣реА рд╣реИрдВрдбрд▓рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рдПред
рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдордп-рдирд┐рд░реНрдзрд╛рд░рдг рдирд╣реАрдВ рд╣реИред RabbitMQ рдЙрдиреНрд╣реЗрдВ рджреВрд╕рд░реЗ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдХреЛ рддрднреА рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░реЗрдЧрд╛, рдЬрдм рдкрд╣рд▓реЗ рдХрд╛ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рд╣реЛ, рдЗрд╕рд▓рд┐рдП рдореИрд╕реЗрдЬ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЯрд╛рдЗрдо рдкрд░ рдХреЛрдИ рдкрд╛рдмрдВрджреА рдирд╣реАрдВ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдореИрдиреНрдпреБрдЕрд▓ рдкреБрд╖реНрдЯрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ
no_ack = True рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕реНрд╡рдд: рдкреБрд╖реНрдЯрд┐ рдХреАред рдЕрдм рд╣рдо рдЗрд╕ рдзреНрд╡рдЬ рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ рдФрд░ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдПрдХ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рднреЗрдЬреЗрдВрдЧреЗред
def callback(ch, method, properties, body): print " [x] Received %r" % (body,) time.sleep( body.count('.') ) print " [x] Done" ch.basic_ack(delivery_tag = method.delivery_tag) channel.basic_consume(callback, queue='hello')
рдЕрдм, рднрд▓реЗ рд╣реА рдЖрдк рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп
Ctrl + C рджрдмрд╛рдХрд░ рд╣реИрдВрдбрд▓рд░ рдмрдВрдж рдХрд░ рджреЗрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦреЛрдПрдЧрд╛ред рд╣реИрдВрдбрд▓рд░ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, RabbitMQ рдЕрдкреБрд╖реНрдЯ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдЧрд╛ред
рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ
рдХрднреА-рдХрднреА рдбреЗрд╡рд▓рдкрд░ рдХреЛрдб рдореЗрдВ
basic_ack рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдЫреЛрдЯреА рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЬрдм рд╣реИрдВрдбрд▓рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддрднреА рд╕рдВрджреЗрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди RabbitMQ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдкреБрд╖реНрдЯ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рдПрдЧрд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк
rabbitmqctl рдХрд╛ рдЙрдкрдпреЛрдЧ
рдореИрд╕реЗрдЬ_рдЕрдиреБрдХреВрд▓рд┐рдд рдлрд╝реАрд▓реНрдб (
рдЕрдирдЕрдХреЙрд▓ рдХрд┐рдП рдЧрдП рд╕рдВрджреЗрд╢) рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ sudo rabbitmqctl list_queues name messages_ready messages_unacknowledged Listing queues ... hello 0 0 ...done.
[рдпрд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд┐рдЧрд░рд╛рдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЙрджреНрдзреГрдд рдХрд┐рдпрд╛ рд╣реИ]рд╕рдВрджреЗрд╢ рд╕реНрдерд┐рд░рддрд╛
рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдирд╣реАрдВ рдЦреЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ RabbitMQ рд╕рд░реНрд╡рд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рддреЛ рдХрд╛рд░реНрдп рдЦреЛ рдЬрд╛рдПрдЧрд╛ред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЬрдм RabbitMQ рд╕рд░реНрд╡рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдХрддрд╛рд░реЗрдВ рдФрд░ рд╕рдВрджреЗрд╢ рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдХреЗ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рдмрдиреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрддрд╛рд░ рдФрд░ рд╕рдВрджреЗрд╢реЛрдВ рджреЛрдиреЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрддрд╛рд░ рдЦреЛ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЯрд┐рдХрд╛рдК (
рдЯрд┐рдХрд╛рдК ) рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
channel.queue_declare(queue='hello', durable=True)
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЖрджреЗрд╢ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рд╕рд╣реА рд╣реИ, рдпрд╣ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐
рд╣реИрд▓реЛ рдХрддрд╛рд░ рдкрд╣рд▓реЗ рд╣реА рдЕрд╕реНрдерд┐рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред RabbitMQ рдПрдХ рдореМрдЬреВрджрд╛ рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдПрдХ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ - рдЪрд▓реЛ рдПрдХ рдЕрд▓рдЧ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдХрддрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
task_queue :
channel.queue_declare(queue='task_queue', durable=True)
рдпрд╣ рдХреЛрдб рдкреНрд░рджрд╛рддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдФрд░ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рддреЛ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ RabbitMQ рд╕рд░реНрд╡рд░ рдХреЗ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдкрд░
task_queue рдХрддрд╛рд░ рдЦреЛ рдирд╣реАрдВ рдЬрд╛рдПрдЧреАред рдЕрдм рдЖрдкрдХреЛ рд▓рдЪреАрд▓рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
2 рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде
delivery_mode рдкреНрд░реЙрдкрд░реНрдЯреА рдкрд╛рд╕ рдХрд░реЗрдВ:
channel.basic_publish(exchange='', routing_key="task_queue", body=message, properties=pika.BasicProperties( delivery_mode = 2,
рд╕рдВрджреЗрд╢ рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдиреЛрдЯ
рдХрд┐рд╕реА рд╕рдВрджреЗрд╢ рдХреЛ рд╕реНрдерд╛рдпреА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рдЦреЛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдпрд╣ рд╕рдВрджреЗрд╢ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП RabbitMQ рдХреЛ рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдРрд╕реЗ рд╕рдордп рдХреА рдПрдХ рдЫреЛрдЯреА рдЕрд╡рдзрд┐ рд╣реЛрддреА рд╣реИ рдЬрдм RabbitMQ рдиреЗ рд╕рдВрджреЗрд╢ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЗрд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, RabbitMQ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП
fsync (2) рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдбрд┐рд╕реНрдХ рдкрд░ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдЙрдЪреНрдЪ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд▓реЗрдирджреЗрди рдореЗрдВ рд▓реЗрдирджреЗрди рдХреЛ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд╛рди рд╡рд┐рддрд░рдг
рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдЕрднреА рднреА рдЙрддрдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рддрдирд╛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рджреЛ рдЧреНрд░рд╛рд╣рдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рд╕рднреА рд╡рд┐рд╖рдо рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рд╣реЛрддреЗ рд╣реИрдВ
[рдкреВрд░рд╛ рд╣реЛрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ] , рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓рд╛ рд╣реИрдВрдбрд▓рд░ рд▓рдЧрд╛рддрд╛рд░ рд╡реНрдпрд╕реНрдд рд░рд╣реЗрдЧрд╛, рдФрд░ рджреВрд╕рд░рд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдореБрдлреНрдд рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди RabbitMQ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдмрджрд▓реЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдЧрд╛ред
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ RabbitMQ рд╕рдВрджреЗрд╢ рдХреЛ рдЙрд╕ рдХреНрд╖рдг рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡реЗ рдХрддрд╛рд░ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рдЕрдкреБрд╖реНрдЯ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВред RabbitMQ рдмрд╕ nth рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ nth рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред

рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
prefetch_count = 1 рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде
basic_qos рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ RabbitMQ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдореИрд╕реЗрдЬ рдирд╣реАрдВ рджреЗ рдкрд╛рдПрдЧрд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдХреЛ рдПрдХ рдирдпрд╛ рд╕рдВрджреЗрд╢ рддрдм рддрдХ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдФрд░ рдХрдиреНрдлрд░реНрдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред RabbitMQ рдкрд╣рд▓реЗ рдлреНрд░реА рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдХреЛ рдореИрд╕реЗрдЬ рднреЗрдЬреЗрдЧрд╛ред
channel.basic_qos(prefetch_count=1)
рдХрддрд╛рд░ рдЖрдХрд╛рд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ
рдпрджрд┐ рд╕рднреА рдЧреНрд░рд╛рд╣рдХ рд╡реНрдпрд╕реНрдд рд╣реИрдВ, рддреЛ рдХрддрд╛рд░ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рдВрднрд╡рддрдГ, рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдЦреИрд░, рдЕрдм рд╕рдм рд╕рд╛рде рд╣реИрдВ
New_task.py рдХрд╛ рдкреВрд░рд╛ рдХреЛрдб
рд╣реИ :
рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рдХреЛрдб:
рд╕рдВрджреЗрд╢ рдкрд╛рд╡рддреА рдФрд░
prefetch_count рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдПрдХ рдХрд╛рд░реНрдп рдХрддрд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд░реЗрдЬрд╝рд▓реВрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдХрд╛рд░реНрдп рдХреЛ RabbitMQ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рддреАрд╕рд░реЗ рдкрд╛рда рдореЗрдВ, рд╣рдо рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗ рдХрд┐ рдЖрдк рдХрд┐рддрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред