无论何时在gcloud上运行hema,我都有问题。
更精确地,通过执行命令whenever --update-crontab
但是我也不确定是否安装了cron,并且我不知道如何检查。谁能遇到?
我正在使用gitlab CI进行部署。 还有这个gitlab-ci.yml
image: registry.gitlab.com/varuno/photo-booth-admin
stages:
- deploy
before_script:
- export PATH="/google-cloud-sdk/bin:$PATH"
deploy:
stage: deploy
environment: production
only:
- master
script:
- bundle install
- cp ./config/database.sample.yml ./config/database.yml
- echo $MASTER_KEY > ./config/master.key
- echo $DEPLOY_KEY_FILE > ./config/google-key.json
- gcloud auth activate-service-account --key-file ./config/google-key.json
- gcloud config set project $PROJECT_ID_PRODUCTION
- gcloud info
- gcloud app deploy --quiet --stop-previous-version --promote --version=photo-booth
- gcloud projects add-iam-policy-binding photo-booth-201515 --member=serviceAccount:22202411108@cloudbuild.gserviceaccount.com --role=roles/editor
- bundle exec rake appengine:exec -- bundle exec rake db:migrate
# - bundle exec rake appengine:exec -- bundle exec rake db:seed
答案 0 :(得分:0)
我认为您不能在GAE上使用whenever
gem,因为GAE不使用* nix样式的cron
服务。
GAE cron服务实际上只是根据配置的时间表向某些配置的URL发出GET
请求的生成器。这些URL的应用处理程序是实际执行作业的处理程序。参见Scheduling Jobs with cron.yaml
要使用GAE cron服务,您需要在应用程序内部创建一个cron.yaml
configuration file并将其部署到GAE。当然,您的应用程序代码应包括相应的URL处理程序。
要从CI系统中部署cron.yaml
文件,您可能需要在现有gitlab-ci.yml
命令之后立即将此命令添加到gcloud app deploy ...
(请参阅Uploading cron jobs ):
gcloud app deploy cron.yaml