Một đồng nghiệp và bản thân tôi đã gặp phải một vấn đề mà chúng tôi có nhiều ý kiến.
Hiện tại chúng tôi có một kho lưu trữ git mà chúng tôi đang giữ tất cả các cronjobs của chúng tôi. Có khoảng 20 crons và chúng không thực sự liên quan ngoại trừ thực tế là tất cả chúng đều là các kịch bản python nhỏ và cần thiết cho một số hoạt động. Chúng tôi đang sử dụng một fabric.py
tệp để triển khai và một requirements.txt
tệp để quản lý các yêu cầu cho tất cả các tập lệnh.
Vấn đề của chúng ta là về cơ bản, chúng ta có giữ tất cả các tập lệnh này trong một kho lưu trữ git hay chúng ta nên tách chúng ra khỏi kho riêng của chúng? Bằng cách giữ chúng trong một kho lưu trữ, việc triển khai chúng trên một máy chủ sẽ dễ dàng hơn. Chúng tôi có thể sử dụng chỉ một tệp cron cho tất cả các tập lệnh.
Tuy nhiên điều này cảm thấy sai, vì 20 cronjobs không liên quan về mặt logic. Ngoài ra, khi sử dụng một requirements.txt
tệp cho tất cả các tập lệnh, thật khó để tìm ra phần phụ thuộc nào cho một tập lệnh cụ thể và tất cả chúng đều phải sử dụng cùng một phiên bản gói.
Chúng ta có thể tách tất cả các tập lệnh ra thành kho riêng của chúng nhưng điều này tạo ra 20 kho khác nhau cần được ghi nhớ và xử lý. Hầu hết các kịch bản này không lớn lắm và giải pháp đó dường như quá mức cần thiết.
Một câu hỏi liên quan là, chúng ta có sử dụng một tệp crontab lớn cho tất cả các cronjobs, hoặc một tệp riêng cho mỗi tệp không? Nếu mỗi cái có cái riêng, làm thế nào để cài đặt của crontab tránh ghi đè lên 19 cái kia? Điều này cũng có vẻ như là một nỗi đau vì sau đó sẽ có 20 tệp cron khác nhau để theo dõi.
Nói tóm lại, câu hỏi và vấn đề chính của chúng ta là chúng ta có giữ tất cả chúng chặt chẽ như một kho lưu trữ hay chúng ta tách chúng ra khỏi kho lưu trữ của riêng chúng với các yêu cầu riêng của chúng và fabfile.py? Chúng tôi cảm thấy như có lẽ chúng tôi cũng đang xem xét một số giải pháp thực sự đơn giản. Có cách nào dễ dàng hơn để giải quyết vấn đề này không?