Linux中Celery的任务调度如何设置

   2024-09-30 5060
核心提示:在 Linux 系统中,使用 Celery 进行任务调度需要以下几个步骤:安装 Celery:使用 pip 安装 Celery:pip install celery创建一个

在 Linux 系统中,使用 Celery 进行任务调度需要以下几个步骤:

安装 Celery:

使用 pip 安装 Celery:

pip install celery

创建一个 Celery 实例:

在你的项目中创建一个名为 celery.py 的文件,然后创建一个 Celery 实例。例如:

from celery import Celeryapp = Celery('tasks', broker='pyamqp://guest@localhost//')@app.taskdef add(x, y):    return x + y

这里,我们创建了一个名为 add 的任务,它接受两个参数并返回它们的和。

配置 Celery:

在项目根目录下创建一个名为 celeryconfig.py 的文件,用于存放 Celery 的配置信息。例如:

BROKER_URL = 'pyamqp://guest:guest@localhost:5672/'CELERY_RESULT_BACKEND = 'rpc://'CELERY_TASK_SERIALIZER = 'json'CELERY_RESULT_SERIALIZER = 'json'CELERY_ACCEPT_CONTENT = ['json']CELERY_TIMEZONE = 'Asia/Shanghai'CELERY_ENABLE_UTC = True

启动 Celery worker:

在终端中,进入到你的项目目录,然后运行以下命令启动 Celery worker:

celery -A celery worker --loglevel=info

-A celery 指定了 Celery 实例的位置,worker 表示启动一个 worker 进程,--loglevel=info 设置日志级别为 info。

调用任务:

现在你可以在其他 Python 脚本或交互式解释器中调用 Celery 任务。例如:

from celery import Celeryapp = Celery('tasks', broker='pyamqp://guest@localhost//')result = app.send_task('tasks.add', args=(4, 4), countdown=10)print(result.get())

这里,我们调用了之前定义的 add 任务,并设置了 10 秒的延迟。result.get() 会等待任务完成并返回结果。

设置定时任务:

要设置定时任务,你需要在 celeryconfig.py 文件中添加一个名为 CELERYBEAT_SCHEDULE 的字典。例如:

CELERYBEAT_SCHEDULE = {    'add-every-30-seconds': {        'task': 'tasks.add',        'schedule': 30.0,        'args': (1, 1)    },}

这里,我们设置了一个每 30 秒执行一次的定时任务,调用 add 任务并传入参数 (1, 1)。

启动 Celery beat:

在终端中,进入到你的项目目录,然后运行以下命令启动 Celery beat:

celery -A celery beat --loglevel=info

-A celery 指定了 Celery 实例的位置,beat 表示启动一个 beat 进程,--loglevel=info 设置日志级别为 info。

现在你已经成功设置了 Celery 任务调度。你可以根据需要添加更多的任务和定时任务。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号