Heroku工人缓存

时间:2018-03-14 14:15:15

标签: php heroku worker heroku-cli

我无法让我的工作进程在Heroku中进行更新。我在Procfile中设置了一个工作器dyno,它连接到Redis实例;在部署之后,我无法看到我对此文件所做的更改。

我试过了:

  • 使用heroku ps:restart worker.1 -a [appname]
  • 重置dyno
  • 使用heroku ps:restart -a [appname]
  • 重新启动所有dynos
  • 更改文件内容以使大小不同
  • 将Procfile更改为指向其他PHP文件

没有任何作用。看起来它在一夜之间(可能是在重启期间)发现了我的一些变化但是我不能强迫它去接受改变......任何想法?

1 个答案:

答案 0 :(得分:0)

登录救援...我的所需包含文件路径出现问题,这导致构建失败。它是默认为最后一次成功构建,这就是为什么它看起来像是缓存。

我能够通过在构建过程中观察日志来找到它:

heroku[worker.1]: Starting process with command `php bin/worker.php`
heroku[worker.1]: State changed from starting to up
heroku[worker.1]: Process exited with status 255
app[worker.1]: PHP Warning:  require_once(../vendor/autoload.php): failed to open stream: No such file or directory in /app/bin/worker.php on line 9
app[worker.1]: PHP Fatal error:  require_once(): Failed opening required '../vendor/autoload.php' (include_path='.:/app/.heroku/php/lib/php') in /app/bin/worker.php on line 9
heroku[worker.1]: State changed from up to crashed

一旦我解决了构建错误,它就不再“缓存”了#39;一切正常。

有效的包含路径:

require_once(__DIR__ . '/../vendor/autoload.php');