celery 停止任务_停止/清除Django-Celery中的定期任务

任务是一条消息,“周期性任务”定期发送任务消息。每个发送的任务都会分配一个唯一的ID。

revoke将只取消单个任务消息。要获取任务的ID,您必须保留发送ID的 跟踪,但您也可以在发送任务时指定自定义ID。

我不确定是否要取消单个任务消息,或者如果您想停止发送更多消息的定期任务,那么我会列出两个答案。

没有内置的方式来保持与周期性任务, 但你可以设置ID为每个任务周期性任务的名义发送任务的ID,这样 的ID将指任何与周期性任务一起发送的任务(通常是最后一个任务)。 您可以指定一个自定义的ID这样,

或者与@periodic_task装饰:

@periodic_task(options={"task_id": "my_periodic_task"})

def my_periodic_task():

pass

或与CELERYBEAT_SCHEDULE设置:

CELERYBEAT_SCHEDULE = {name: {"task": task_name,

"options": {"task_id": name}}}

如果你想简单地删除您周期性任务从代码库中删除@periodic_task,或从CELERYBEAT_SCHEDULE删除条目。 如果您使用的是Django数据库调度程序,则必须从Django Admin界面中删除定期任务 。

PS1:revoke不会停止已经启动的任务。它只取消尚未开始的 任务。您可以使用 revoke(task_id, terminate=True)来终止正在运行的任务。默认情况下,如果您想发送另一个信号(例如KILL),使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我想将frontend 也是用volumes,将其映射到/app/frontend目录,在/app/frontend下install以及build,如何实现 docker-compose.yml文件: version: '3' services: frontend: build: context: ./frontend dockerfile: Dockerfile ports: - 8010:80 restart: always backend: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: python manage.py runserver 0.0.0.0:8000 ports: - 8011:8000 restart: always celery-worker: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server worker -l info --pool=solo --concurrency=1 depends_on: - redis - backend restart: always celery-beat: build: context: ./backend dockerfile: Dockerfile volumes: - /app/backend:/app environment: - CELERY_BROKER_URL=redis://redis:6379/0 command: celery -A server beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler depends_on: - redis - backend restart: always redis: image: redis:latest ports: - 6379:6379 restart: always mysql: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=sacfxSql258147@ ports: - 8016:3306 volumes: - ./mysql:/var/lib/mysql restart: always frontend:dockerfile文件 FROM node:16.18.1 WORKDIR /app/frontend COPY package*.json ./ RUN npm install COPY . . RUN npm run build:prod FROM nginx:latest COPY --from=0 /app/frontend/dist/ /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
07-14

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值