【发布时间】:2016-09-15 15:46:16
【问题描述】:
我在 CakePHP Shell 中有一个特定任务,它由 CRON 作业执行。但我希望用户能够随时从网络界面(如按钮或类似的东西)执行它。
所以,我的问题是,这可以从控制器执行 shell 吗?
在控制器中模拟它:
bin/cake MyShell
我知道在之前的 CakePHP 版本中是可能的,但在最新版本中我没有找到与此相关的内容。并且使用 exec("bin/cake MyShell") 对我来说真的很脏。
【问题讨论】:
-
你需要一个队列作业,找到这个插件(可能有帮助):github.com/dereuromark/cakephp-queue
-
是的,这是正确的做法。否则,如果您想进行同步。不要使用外壳,而是将代码放入业务类中,然后直接从控制器调用它。
-
@ka_lin,谢谢,我会检查这个插件!
-
@mark 是的,但问题是,该任务需要很长时间才能执行(可以达到 +/-45 百万)并且每次都中断 php 超时。所以我不能在控制器中做到这一点。顺便说一句,感谢您的工作,tinyauth 非常棒!
标签: php shell cakephp controller