如何将芹菜节拍传递给工人

时间:2019-12-24 04:35:39

标签: python python-3.x celery

我从python中的命令调用celery,要求是从点击库中调用celery和celery beat

celery_config.py

broker_url = "redis://localhost:6379/0"
result_backend = "redis://localhost:6379/0"
task_serializer = "json"
timezone = "Europe/London"
enable_utc = True
broker_transport_options = {
    "visibility_timeout": 1,
    "fanout_prefix": True,
    "fanout_patterns": True,
}
beat_schedule = {
    'add-every-30-seconds': {
        'task': 'my_app.task_queue.sample',
        'schedule': 2.0,
    },
}

main.py

from celery import current_app
app.config["task_app"] = current_app._get_current_object()

task_queue.py

app = Celery("task")
app.config_from_object(celery_config)



@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
    sender.add_periodic_task(2.0, sample.s(), name='add every 10')


@app.task
def sample():
    print("===============================")
    print(datetime.now())
    print("===============================")

cli.py

@click.command("tasks", help="run this command to start celery task queue")
def tasks():
    """
    Runs the celery task queue
    """
    from celery.bin import worker

    try:

        worker = worker.worker(app=app.config.get("task_app"))
        worker.run(app="my_app.task_queue")

    except Exception as e:
        raise e

现在还不清楚如何以类似的方式开始芹菜拍打

我尝试过

kwargs = {"beat": "-s  <path>"}
worker.run(app="my_app.task_queue", **kwargs)

如何进行这项工作?谢谢

0 个答案:

没有答案