如何使用芹菜任务创建单个文件可执行文件



我已经成功地学习了一些芹菜的基础知识,但是我找不到创建单个文件可执行文件的简单方法(无需运行芹菜作为一个单独的过程来运行定期任务)。可以编写一个应用程序并启动其工作过程(http://docs.celeryproject.org/en/3.1/userguide/application.html):

from datetime import timedelta
from celery import Celery
app = Celery()
@app.task
def test():
    print("he-he")
app.conf.update(
    BROKER_URL="redis://localhost:6379",
    CELERY_RESULT_BACKEND="redis://localhost:6379",
    CELERY_ACCEPT_CONTENT=["application/json"],
    CELERY_TASK_SERIALIZER="json",
    CELERY_RESULT_SERIALIZER="json",
    CELERYBEAT_SCHEDULE={
        'runs-every-30-seconds': {
            'task': '__main__.test',
            'schedule': timedelta(seconds=30),
        },
    }
)
if __name__ == '__main__':
   app.worker_main()

但是,如何从同一模块启动Beat进程以开始运行定期任务(为了不运行芹菜守护程序作为单独的可执行文件)?重要的是,因为我想使用Pyinstaller,因此在客户机器上没有专用的Python解释器。

一个人可以运行这样的简单节拍过程:

# that's the class to run the beat process
from celery.bin.beat import beat
# your app
from celery_tasks import app
if __name__ == "__main__":
    beat(app=app).run()

最新更新