如何解决如何使用 celery beat 从 RabbitMQ 队列中安排任务?
我正在向“RequestReceiverQueue”RMQ 发布一条消息,我需要将其安排为任务。所以这里发布的消息是可变的,因此如何使用芹菜节拍或替代(如果有)将其设置为计划任务?
应用程序
scheduler_app = Celery(
"schedulerApp",backend="rpc://",broker="pyamqp://guest:guest@localhost:5672/poc_vhost",include=["workers.tasks"]
)
request_receiver_exchange = Exchange("request_receiver_exchange",type="topic")
scheduler_app.conf.task_queues = (
Queue(
'RequestReceiverQueue',exchange=request_receiver_exchange,durable=True,routing_key="workers.tasks.*"
),)
workers.tasks.py
from workers.app import scheduler_app
@scheduler_app.task
def execute_request_1(msg):
print("You are in execute_request_1: ")
print("processing message: ",msg)
@scheduler_app.task
def execute_request_2(request):
print("You are in execute_request_2")
print("Received request is: ",request)
celery beat 配置:这里我需要调度来自“RequestReceiverQueue”队列的传入消息,而不是调度程序配置中定义的 kwargs。
scheduler_app.conf.beat_schedule = {
"task-scheduler-1": {
"task": "workers.tasks.execute_request_1","schedule": 60.0,"kwargs": {"Msg": "Between 1945 and 1947,Turing lived in Hampton,London."}
},"task-scheduler-2": {
"task": "workers.tasks.execute_request_2","kwargs": {"Msg": "Turing worked at the National Physical Laboratory."}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。