2011-12-23 31 views
36

Tôi đã tạo một ứng dụng sử dụng đá quý bất cứ khi nào. Đá quý tạo ra các công việc cron. Tôi đã nhận nó làm việc tại địa phương nhưng dường như không thể làm cho nó hoạt động trên cây tuyết tùng. Lệnh để làm điều này là gì?"Bất cứ khi nào" đá quý chạy công việc cron trên Heroku

chạy:

heroku run whenever --update-crontab job1 

không hoạt động

Trả lời

68

Câu trả lời ngắn: sử dụng lập lịch add-on: http://addons.heroku.com/scheduler

dài câu trả lời: Khi bạn Heroku chạy, chúng tôi

  1. quay lên một dyno
  2. đặt mã của bạn trên nó
  3. thực hiện lệnh của bạn, chờ cho nó để kết thúc
  4. ném Dyno đi

Mọi thay đổi bạn thực hiện để crontab sẽ được ngay lập tức vứt bỏ. Mọi thứ đều tạm thời, bạn không thể chỉnh sửa tệp trên heroku, chỉ cần đẩy mã mới.

+2

Câu trả lời ngắn; đã làm các trick cho tôi. – RedRory

+0

bạn nên làm gì cho các tác vụ chạy dài? (mất vài giờ để thực hiện) – slykat

+1

điều này là tốt, bạn sẽ nhận được 24 giờ để hoàn thành nó – Will

3

Bạn cần thêm Heroku Scheduler bổ trợ.

Bạn có thể thêm trực tiếp từ bảng điều khiển của bạn hoặc sử dụng lệnh sau:

  1. cài đặt add-on:

    heroku addons:create scheduler:standard 
    
  2. Tạo một nhiệm vụ cào trong lib/tasks

    # lib/tasks/scheduler.rake 
    task :send_reminders => :environment do 
        User.send_reminders 
    end 
    
  3. Lập lịch công việc

    • Visit Heroku Dashboard
    • Mở của bạn ứng dụng
    • Chọn Scheduler từ add-ons danh sách
    • Bấm Thêm Job, nhập công việc và chọn tần suất.

      ví dụ: Thêm rake send_reminders, chọn "Daily""00:00" để gửi lời nhắc mỗi ngày vào lúc nửa đêm.

Heroku add cron task

Các vấn đề liên quan