我在Symfony中有两个独立的控制台命令,它们都作为cron作业运行。但是,当这些命令碰巧同时运行时,它们都想要清除/更新开发缓存,这会导致一个命令或另一个命令失败,并发生PHP致命错误“无法重新声明类等等”。
除了确保这两个命令在不同时间运行并且每个命令在运行之前清除它们之外,有没有办法在Symfony控制台命令中防止这样的冲突?
FWIW,我们已经尝试强制推动环境,但它似乎仍然想要使用开发缓存(所以这可能最终会成为一个完全不同的问题):
$ sudo php /var/www/prod/app/console console-command --env=prod orgs --report --do-sync --welcome
PHP Fatal error: Cannot redeclare class Monolog\Handler\FingersCrossedHandler in /var/www/prod/app/cache/dev/classes.php on line 3704
编辑:事实证明我们的一些代码是明确定义开发环境的,完全忽略了CLI选项。道歉。
答案 0 :(得分:0)
你可以尝试使用类似Makefile的东西
both:make command-one make command-two
命令之一: app / console foo
命令2: app / console bar
然后跑步你可以做
同时
或
make command-one
或
make command-two