Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan modul jadual dalam Python untuk melaksanakan tugas berjadual
Mari kita lihat kes berikut dahulu. melalui Kod berikut
import sched import time def say_hello(name): print(f"Hello, world, {name}") scheduler = sched.scheduler(time.time, time.sleep) scheduler.enter(5, 1, say_hello, ("张三", )) scheduler.run()
Seterusnya, kami menggunakan kaedah
untuk melaksanakan operasi tugasan yang dijadualkan Parameternya ialah masa tunda, keutamaan tugas, fungsi pelaksanaan khusus dan parameter dalam fungsi pelaksanaan. Kod seperti di atas akan melaksanakan fungsiimport sched scheduler = sched.scheduler()
enter()
selepas kelewatan selama 5 saat Sudah tentu, jika masa kelewatan adalah sama, kita boleh menetapkan keutamaan pelaksanaan tugas untuk menentukan susunan kaedah fungsi. dijalankan, contohnya Kod berikut say_hello()
adalah seperti kod di atas Walaupun masa tunda adalah sama, keutamaan kaedah
jelas lebih rendah daripada kaedahimport sched import time def say_hello(name): print(f"Hello, world, {name}") def say_hello_2(name): print(f"Hello, {name}") scheduler = sched.scheduler(time.time, time.sleep) scheduler.enter(5, 2, say_hello, ("张三", )) scheduler.enter(5, 1, say_hello_2, ("李四", )) scheduler.run(), jadi. yang terakhir akan dilaksanakan terlebih dahulu.
say_hello()
Penggunaan lanjutansay_hello_2()
Di sini kami. buat yang baharu
Fungsi tersuai memanggil kaedahimport sched import time def say_hello(): print("Hello, world!") scheduler = sched.scheduler(time.time, time.sleep) def repeat_task(): scheduler.enter(5, 1, say_hello, ()) scheduler.enter(5, 1, repeat_task, ()) repeat_task() scheduler.run()untuk melaksanakan fungsi
yang ditakrifkan sebelum ini sekali setiap 5 saat repeat_task()
scheduler.enter()
Laksanakan tugas pada masa tetap say_hello()
scheduler.entertabs()
Kami memasukkan parameter untuk melaksanakan tugas di masa yang ditentukan, iaitu, 5 saat dari sekarang
import sched import time def say_hello(): print("Hello, world!") scheduler = sched.scheduler(time.time, time.sleep) # 指定时间执行任务 specific_time = time.time() + 5 # 距离现在的5秒钟之后执行 scheduler.enterabs(specific_time, 1, say_hello, ()) scheduler.run()Laksanakan berbilang tugasDi sini kita masih memanggil kaedah
enter()
Dua fungsi ditakrifkan di sini,
import sched import time def task_one(): print("Task One - Hello, world!") def task_two(): print("Task Two - Hello, world!") scheduler = sched.scheduler(time.time, time.sleep) # 任务一在两秒钟只有执行 scheduler.enter(2, 1, task_one, ()) # 任务二在五秒钟之后运行 scheduler.enter(5, 1, task_two, ()) scheduler.run()mengandungi logik pelaksanaan yang sama, mencetak "Hello, world!", kemudian
dilaksanakan selepas dua saat dan task_one
dilaksanakan selepas 5 saat . Keutamaan pelaksanaan kedua-duanya adalah sama. task_two
task_one()
Laksanakan tugas yang berbeza dengan keutamaan yang berbezatask_two()
task_one()
outputtask_two()
import sched import time def task_one(): print("Task One - Hello, world!") def task_two(): print("Task Two - Hello, world!") scheduler = sched.scheduler(time.time, time.sleep) # 优先级是1 scheduler.enter(2, 2, task_one, ()) # 优先级是2 scheduler.enter(5, 1, task_two, ()) scheduler.run()Task One - Hello, world!
Task Two - Hello, world!
Kod di atas akan dijalankan selepas jeda dua saat
fungsi, kemudian jeda selama 3 saat dan kemudian laksanakan fungsi
Tugas berjadual ditambah kaedah pembatalan task_one()
task_two()
Kami menambah kaedah pembatalan pada tugas yang dijadualkan, kodnya adalah seperti berikut
yang akan dilaksanakan selepas dua saat Pada akhirnya, hanya kaedah
dilaksanakan dan "Task Two - Hello, world!"import sched import time def task_one(): print("Task One - Hello, world!") def task_two(): print("Task Two - Hello, world!") scheduler = sched.scheduler(time.time, time.sleep) # 任务一在两秒钟只有执行 task_one_event = scheduler.enter(2, 1, task_one, ()) # 任务二在五秒钟之后运行 task_two_event = scheduler.enter(5, 1, task_two, ()) # 取消执行task_one scheduler.cancel(task_one_event) scheduler.run()
Program Sandaran Pelaksanaan task_one()
task_two()
Mari kita tulis skrip sandaran untuk membuat sandaran fail pada masa yang ditetapkan setiap hari Kodnya adalah seperti berikut
dalam modul
Salin fail, dan kemudian laksanakannya tepat pada masanya pada jam 1 setiap hariimport sched import time import shutil def backup_files(): source = '路径/files' destination = '路径二' shutil.copytree(source, destination) def schedule_backup(): # 创建新的定时器 scheduler = sched.scheduler(time.time, time.sleep) # 备份程序在每天的1点来执行 backup_time = time.strptime('01:00:00', '%H:%M:%S') backup_event = scheduler.enterabs(time.mktime(backup_time), 1, backup_files, ()) # 开启定时任务 scheduler.run() schedule_backup()
Laksanakan program untuk pengedaran e-mel berjadualshutil
copytree()
Akhir sekali, kami akan laksanakan program untuk pengedaran e-mel berjadual Kodnya adalah seperti berikut
Atas ialah kandungan terperinci Cara menggunakan modul jadual dalam Python untuk melaksanakan tugas berjadual. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!