我Celery
作为Windows服务安装。我的代码将 *.pid 和 Celery 日志文件移动到另一个目录,但三个文件(celerybeat-schedule.bak
、celerybeat-schedule.dir
、celerybeat-schedule.dat
(我无法移动。
我使用以下代码来更改其他文件的默认路径:
command = '"{celery_path}" -A {proj_dir} beat -f "{log_path}" -l info --pidfile="{pid_path}" '.format(
celery_path=os.path.join(PYTHONSCRIPTPATH, 'celery.exe'),
proj_dir=PROJECTDIR,
# log_path_1=os.path.join(INSTDIR,'celery_2.log')),
log_path=os.path.join(tmpdir,'celery_'+cur_date_time+'.log'),
pid_path = os.path.join(tmpdir,'celerybeat_'+cur_date_time+'.pid'))
如何更改芹菜节拍服务的默认路径?
如果您执行celery -A your.project.app beat --help
它将为您打印非常有用的 CLI 帮助,您可以在其中找到问题的解决方案 --s <path to the scheduler database file>
标志。
-s SCHEDULE, --schedule SCHEDULE
Path to the schedule database. Defaults to celerybeat-
schedule. The extension '.db' may be appended to the
filename. Default is celerybeat-schedule.
您所要做的就是将计划数据库文件的完整路径传递给您的 Celery 节拍进程。示例:-s C:/services/celery/celerybeat-schedule.db
最后,我能够使用以下代码更改芹菜服务的路径。
command = '"{celery_path}" -A {proj_dir} beat -f "{log_path}" -l info --pidfile="{pid_path}" '.format(
celery_path=os.path.join(PYTHONSCRIPTPATH, 'celery.exe'),
proj_dir=PROJECTDIR,
# log_path_1=os.path.join(INSTDIR,'celery_2.log')),
log_path=os.path.join(CELERYDIR,'celery_'+cur_date_time+'.log'),
# bak_path=os.path.join(CELERYDIR,'celerybeat-schedule'),
pid_path = os.path.join(CELERYDIR,'celerybeat_'+cur_date_time+'.pid'))