问题描述
假设有任务
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
的所有内容都将在启动脚本运行之前运行