职程(Worker)无法正常启动:权限错误

  • 如果使用系统是 Debian、Ubuntu 或其他基于 Debian 的发行版: Debian 最近把 /dev/shm/ 重名 /run/shm

使用软连接可以解决该问题: # ln -s /run/shm /dev/shm

  • 其他: 如果设置了 --pidfile --logfile--statedb 其中的一个参数,必须要保证职程(Worker)对指向的文件/目录可读可写。

任务总处于 PENDING (待处理)状态

所有任务的状态默认都是 PENDING (待处理)状态,Celery 在下发任务时不会更换任务状态, 并且如果没有历史任务的都是会被任务待处理状态。

  1. 确认任务没有启用 ignore_result 如果启用,会强制跳过任务更新状态。
  2. 确保 task_ignore_result 未启用。
  3. 确保没有旧的职程(Worker)正在运行。
  4. 启动多个职程(Worker)比较容易,在每次运行新的职程(Worker)之前需要确保之前的职程是否关闭。
  5. 未配置结果后端的职程(Worker)是否正在运行,可能会消费当前的任务消息。
  6. –pidfile 参数设置为绝对路径,确保该情况不会出现。
  7. 确认客户是否配置正确。 可能由于某种场景,客户端与职程(Worker)的后端不配置不同,导致无法获取结果,所以需要确保配置是否正确: ```py

    result = task.delay(…) print(result.backend) ```