在Symfony 4中配置运行cron job报错,如何实现自动每分钟执行?
解决步骤
1 修复手动执行cron报错问题
- 你的定时任务在配置文件中命名为
testt,执行命令时多写了一个t变为testtt,名称不匹配会触发服务不存在报错 - 执行命令时需指定对应分支环境,避免权限匹配错误,正确的测试命令为:
symfony cron testt --env=master
2 修改配置实现每分钟执行、自动生效
原配置中的spec: '1 * * * *'代表每小时第1分钟执行,要实现每分钟运行修改.symfony.cloud.yaml配置如下:
timezone: Europe/Istanbul crons: check_new_users: # 建议改为语义化名称,降低拼写错误概率 spec: '* * * * *' cmd: | if [ "$SYMFONY_BRANCH" = "master" ]; then croncape symfony console app:check-new-users fi
修改完成后将配置推送到master分支触发部署,Symfony Cloud会自动加载定时任务配置,服务器重启/重新部署后都会自动启动该定时任务,无需额外设置自启。
3 验证配置生效
部署完成后执行以下命令查看当前环境已加载的定时任务列表,确认配置已被正确识别:
symfony cron:list --env=master
内容的提问来源于stack exchange,提问作者rewrewty1
相关产品推荐
相关产品推荐

