Hướng dẫn python schedule multiple jobs - lịch trình python nhiều công việc

I am writing some code to submit multiple jobs to a job scheduler.

The code:

def submit_copasi_job_SGE(self,run_script_name,copasi_file,new_report_name):
    CT=Cluster_Tools() #initialize a custom class
    CT.change_scan_report_name(copasi_file,new_report_name) # use a custom function
    with open(run_script_name+'.sh','w') as f: #write a .sh script for submission to the job scheduler
        f.write('#!/bin/bash\n#$ -V -cwd\nmodule add apps/COPASI\nCopasiSE {}'.format(copasi_file))
    os.system('qsub {}'.format(run_script_name)) # submit to the job scheduler
    os.remove(run_script_name) # remove the run script

def submit_multi_copasi_job_SGE(self,run_script_name,copasi_file,new_report_name,n):
    CT=Cluster_Tools() #initialize custom class
    run_script_vec=[]  #create a numbered list of run script names
    for i in range(n): 
        run_script_vec.append(run_script_name+'_'+str(i))
    print run_script_vec
    for i in run_script_vec: #iterate over the run scripts with the previously defined function 
        CT.submit_copasi_job_SGE(i,copasi_file,new_report_name+str(i))

The first part will submit a job to the job scheduler. This is tested and it works. Now however I am trying to write a function to iterate over the first function to submit the same job multiple times (with different output file names, hence the 'change_scan_report_name' bit of the first function).

The error I get is the following:

  File "/home/b3053674/Models/Retinoic_Acid/Fit5/Copasi_Tools.py", line 307, in submit_copasi_job_SGE
    os.remove(run_script_name)
OSError: [Errno 2] No such file or directory: '/home/b3053674/Models/Retinoic_Acid/Fit5/run_0.sh'

I suspect this is a logic problem, but i'm baffled and think this should work. Can anybody spot the bug?

Chắc hẳn cronjob đã không còn xa lạ gì với dân dev như chúng ta, hôm nay mình xin giới thiệu việc quản lý các cronjob ứng dụng trong dự án python với package python-crontab.

Nội dung chính ShowShow

  • 1. Crontab là gì
  • 2. Cú pháp trong crontab
  • 3. Cài đặt
  • 4. Truy cập vào Crontab
  • 5. Tạo cronjob mới
  • 6. Cập nhật một job Cron hiện có
  • 7. Xóa job khỏi Crontab
  • 8. Kiểm tra lịch job
  • 9. Đặt giới hạn
  • 10. Enabling and Disabling a Job

1. Crontab là gì

2. Cú pháp trong crontab

3. Cài đặt

4. Truy cập vào Crontab

2. Cú pháp trong crontab

3. Cài đặt

4. Truy cập vào Crontab

5. Tạo cronjob mới

Minute Hour Day Month Day_of_the_Week  

┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23) 
│ │ ┌───────────── day of month (1 - 31)
│ │ │ ┌───────────── month (1 - 12)
│ │ │ │ ┌───────────── day of week (0 - 6) (Sunday to Saturday;
│ │ │ │ │                                       7 is also Sunday on some systems)
│ │ │ │ │
│ │ │ │ │
* * * * *  command to execute

6. Cập nhật một job Cron hiện có

7. Xóa job khỏi Crontab

8. Kiểm tra lịch job

9. Đặt giới hạn

  1. Trong quá trình quản trị hệ thống, cần phải thực hiện các background jobs trên máy chủ để thực hiện các tác vụ thông thường. Cron là một quá trình hệ thống được sử dụng để thực hiện các background tasks trên cơ sở thường xuyên. Cron yêu cầu một tệp có tên là crontab chứa danh sách các tác vụ được thực thi tại một thời điểm cụ thể. Tất cả các job này được thực hiện trong background tại thời điểm quy định.
  2. Cron là một tiện ích phần mềm cho phép chúng ta lên lịch các tác vụ trên các hệ thống giống Unix. Tên này bắt nguồn từ từ tiếng Hy Lạp "Chronos", có nghĩa là "thời gian". Các task trong Cron được định nghĩa trong một crontab, là một tệp văn bản chứa các lệnh được thực hiện.

3. Cài đặt

pip install python-crontab

4. Truy cập vào Crontab

from crontab import CronTab

4. Truy cập vào Crontab

5. Tạo cronjob mới

6. Cập nhật một job Cron hiện có

cron = CronTab(user='username')  
# or
cron = CronTab()
# or
cron = CronTab(user=True)  

7. Xóa job khỏi Crontab

cron = CronTab(tabfile='filename.tab')  

cron = CronTab(tab="""* * * * * command""")  

5. Tạo cronjob mới

6. Cập nhật một job Cron hiện có

import datetime
 
with open('dateInfo.txt','a') as outFile:
    outFile.write('\n' + str(datetime.datetime.now()))

7. Xóa job khỏi Crontab

from crontab import CronTab
 
my_cron = CronTab(user='nguyenchithanh')
job = my_cron.new(command='python /home/writeDate.py')
job.minute.every(1)
 
my_cron.write()

8. Kiểm tra lịch job

python scheduleCron.py

9. Đặt giới hạn

6. Cập nhật một job Cron hiện có

7. Xóa job khỏi Crontab

  File "/home/b3053674/Models/Retinoic_Acid/Fit5/Copasi_Tools.py", line 307, in submit_copasi_job_SGE
    os.remove(run_script_name)
OSError: [Errno 2] No such file or directory: '/home/b3053674/Models/Retinoic_Acid/Fit5/run_0.sh'
0

8. Kiểm tra lịch job

  File "/home/b3053674/Models/Retinoic_Acid/Fit5/Copasi_Tools.py", line 307, in submit_copasi_job_SGE
    os.remove(run_script_name)
OSError: [Errno 2] No such file or directory: '/home/b3053674/Models/Retinoic_Acid/Fit5/run_0.sh'
1

7. Xóa job khỏi Crontab

pip install python-crontab
0

8. Kiểm tra lịch job

pip install python-crontab
1

8. Kiểm tra lịch job

9. Đặt giới hạn

pip install python-crontab
2

Trong quá trình quản trị hệ thống, cần phải thực hiện các background jobs trên máy chủ để thực hiện các tác vụ thông thường. Cron là một quá trình hệ thống được sử dụng để thực hiện các background tasks trên cơ sở thường xuyên. Cron yêu cầu một tệp có tên là crontab chứa danh sách các tác vụ được thực thi tại một thời điểm cụ thể. Tất cả các job này được thực hiện trong background tại thời điểm quy định.

9. Đặt giới hạn

Trong quá trình quản trị hệ thống, cần phải thực hiện các background jobs trên máy chủ để thực hiện các tác vụ thông thường. Cron là một quá trình hệ thống được sử dụng để thực hiện các background tasks trên cơ sở thường xuyên. Cron yêu cầu một tệp có tên là crontab chứa danh sách các tác vụ được thực thi tại một thời điểm cụ thể. Tất cả các job này được thực hiện trong background tại thời điểm quy định.

pip install python-crontab
3

Chúng tôi cũng có thể thiết lập nhiệm vụ để chạy vào những ngày nhất định trong tuần

pip install python-crontab
4

Một điều quan trọng cần xem xét là mỗi khi chúng tôi đặt ra giới hạn thời gian, chúng tôi sẽ hủy bỏ giới hạn trước đó

pip install python-crontab
5

Trừ khi, chúng tôi thêm lịch biểu vào lịch trước đó

pip install python-crontab
6

10. Enabling and Disabling a Job

Để bật job:

pip install python-crontab
7

Để tắt job:

pip install python-crontab
8

#11. Kiểm tra hiệu lực và tìm kiếm xác thực

pip install python-crontab
9

Tìm kiếm :

from crontab import CronTab
0

nguồn: http://stackabuse.com/scheduling-jobs-with-python-crontab/,

https://code.tutsplus.com/tutorials/managing-cron-jobs-using-python--cms-28231