2012-07-24 26 views
15

Vì vậy, ngay bây giờ tôi đã triển khai delay_job hoạt động hoàn hảo trên môi trường phát triển địa phương của tôi. Để bắt đầu công nhân trên máy của tôi, tôi chỉ chạy rake jobs:work và nó hoạt động hoàn hảo.Chạy nhân viên delay_job trên Heroku?

Để bị delay_job hoạt động trên heroku, tôi đã sử dụng khá nhiều lệnh giống nhau: heroku run rake jobs:work. Giải pháp này hoạt động, mà không cần phải trả bất cứ thứ gì cho chi phí công nhân cho Heroku, nhưng tôi phải giữ cửa sổ nhắc lệnh của mình mở hoặc nếu công nhân delay_job dừng lại khi tôi đóng nó lại. Có một lệnh để giữ vĩnh viễn công nhân delay_job này làm việc ngay cả khi tôi đóng cửa sổ lệnh không? Hay có cách nào tốt hơn để đi về điều này?

Trả lời

9

Thêm

worker: rake jobs:work 

để Procfile của bạn.

EDIT:

Thậm chí nếu bạn chạy nó từ giao diện điều khiển của bạn, bạn 'mua' nhân viên Dyno nhưng Heroku có mỗi biling thứ hai. Vì vậy, bạn không trả tiền bởi vì bạn có 750h miễn phí, và tháng trong trường hợp xấu nhất có 744h, vì vậy bạn có miễn phí 6h cho dynos phụ của bạn, nhiệm vụ lên lịch và như vậy.

+2

Tài liệu có tại đây: https://devcenter.heroku.com/articles/delayed-job – zsquare

+5

Thậm chí nếu bạn chạy nó từ bảng điều khiển, bạn 'mua' công nhân dyno nhưng Heroku có mỗi giây, vì vậy bạn không trả tiền vì bạn có 750 giờ miễn phí và tháng trong trường hợp xấu nhất có 744h, vì vậy bạn có 6 giờ miễn phí cho các dynos phụ, tác vụ lên lịch và do đó n. – Hauleth

1

Tôi chưa thử cá nhân, nhưng bạn có thể tìm thấy nohup hữu ích. Nó cho phép quá trình của bạn chạy mặc dù bạn đã đóng cửa sổ đầu cuối của mình. Link: http://linux.101hacks.com/unix/nohup-command/

13

Tôi khuyên bạn nên sử dụng workless gem để chạy các công việc bị trì hoãn trên heroku. Tôi sử dụng điều này ngay bây giờ - nó hoạt động hoàn hảo cho tôi, không phức tạp và với chi phí bằng không.

Tôi cũng đã sử dụng hirefireapp mang lại mức độ kiểm soát tốt hơn đối với nhân viên mở rộng quy mô. Chi phí này, nhưng chi phí ít hơn một nhân viên heroku duy nhất (hơn một tháng). Tôi không sử dụng điều này bây giờ, nhưng đã sử dụng nó, và nó đã làm việc rất tốt.

+0

Tôi đã cài đặt không hoạt động và đã định cấu hình các biến heroku. Tôi nên làm gì bây giờ? Nó dường như không hoạt động. –

+0

bạn đã thêm cấu hình (giả sử bạn đang ở trên tuyết tùng)? config.after_initialize làm Chậm :: Job.scaler =: heroku_cedar cuối –

+0

@DamonMannion 5 cho bạn về câu trả lời này – Kashiftufail

0

Sử dụng bảng điều khiển heroku để đưa nhân viên vào công việc sẽ chỉ tạo một dyno tạm thời cho công việc. Để giữ cho các công việc chạy mà không cần cli, bạn cần phải đưa lệnh vào Procfile như @Lucaksz đề xuất.

Sau khi triển khai, bạn cũng cần phải mở rộng sự hình thành Dyno, như Heroku cần phải biết có bao nhiêu Dyno nên được đưa vào các loại quy trình như thế này: Heroku ps: quy mô lao động = 1

Chi tiết có thể đọc tại đây https://devcenter.heroku.com/articles/scaling

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