自动化rake任务以在heroku上启动时运行?

问题描述

假设有任务

rake startupscript

应在应用程序启动时运行,我们如何在heroku上实现自动化?

我知道有一个heroku调度程序,但是它将每10分钟运行一次任务,而不是在启动时运行一次。我也知道Procfile,并相信这是一个解决方案,尽管我尚不知道如何实现(也许更重要的是,我不想冒险破坏任何可以通过procfile配置的东西,例如网络服务器等)。许多procfile文档都专注于使用它来更改Web服务器,而不是应用程序级耙任务。

如何使rake任务在启动时运行?

解决方法

您可以在启动应用程序服务之前向Procfile添加类似的内容

# Run pre-release-tasks here
release: bundle exec rails db:migrate
# Then run your application
web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}

标记为release的所有内容都将在启动脚本运行之前运行

https://devcenter.heroku.com/articles/release-phase