Làm cách nào để tạo lịch trình trong python?

Đây là tập lệnh Python sẽ được sử dụng cho ví dụ của chúng tôi (bạn có thể sử dụng tập lệnh Python khác dựa trên nhu cầu của mình)

import tkinter as tk 

root= tk.Tk() 
 
canvas1 = tk.Canvas(root, width = 300, height = 300)
canvas1.pack()

label1 = tk.Label(root, text='Hello World!')
canvas1.create_window(150, 150, window=label1)

root.mainloop()

Bước 2. Lưu tập lệnh Python

Khi bạn đã viết xong tập lệnh, hãy lưu nó dưới dạng tệp Python (trong đó phần mở rộng tệp là. py)

Chẳng hạn, hãy lưu tệp dưới dạng hello_world. py theo đường dẫn sau

C. \Users\Ron\Desktop\hello_world . p

Bước 3. Tạo tệp hàng loạt để chạy tập lệnh Python

Tiếp theo, tạo một tệp bó để chạy tập lệnh Python

Để bắt đầu, hãy mở Notepad rồi sử dụng mẫu sau

"Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py"
pause

ví dụ của chúng tôi

  • Đường dẫn lưu trữ exe Python là.
    “C. \Users\Ron\AppData\Local\Programs\Python\Python39\python. exe”
  • Đường dẫn nơi lưu trữ tập lệnh Python là (xem bước 2).
    “C. \Users\Ron\Desktop\hello_world. py”

Đây là các đường dẫn trong Notepad (bạn sẽ cần điều chỉnh các đường dẫn đó để phù hợp với phiên bản của mình)

"C:\Users\Ron\AppData\Local\Programs\Python\Python39\python.exe" "C:\Users\Ron\Desktop\hello_world.py"
pause

Cuối cùng, lưu Notepad với tên tệp của bạn và phần mở rộng tệp "bat"

tên_tệp. con dơi

Ví dụ: hãy lưu Notepad dưới dạng

run_python_script. con dơi

Sau khi bạn lưu Notepad, một tệp bó mới (được gọi là run_python_script) sẽ được tạo tại vị trí đã chỉ định

C. \Users\Ron\Desktop\run_python_script . con dơi

Bước 4. Lên lịch cho Python Script bằng Windows Scheduler

Để lên lịch cho tập lệnh Python bằng Bộ lập lịch Windows

  • Mở Bảng điều khiển Windows và sau đó nhấp vào Công cụ quản trị
  • Bấm đúp vào Trình lập lịch tác vụ, sau đó chọn tùy chọn 'Tạo tác vụ cơ bản…'
  • Nhập tên cho nhiệm vụ của bạn (bạn cũng có thể nhập mô tả nếu cần), rồi nhấn Tiếp theo. Chẳng hạn, hãy đặt tên cho nhiệm vụ là. Chạy Hello World
  • Chọn bắt đầu tác vụ ‘Hàng ngày‘ vì chúng tôi muốn chạy tập lệnh Python hàng ngày vào lúc 6 giờ sáng. Đồng thời chỉ định ngày và giờ bắt đầu (ví dụ: 6 giờ sáng)
  • Chọn, Bắt đầu một chương trình, rồi nhấn Tiếp theo
  • Sử dụng nút Duyệt để tìm tệp (run_python_script. bat) chạy tập lệnh Python. Trong trường hợp của chúng ta.

C. \Users\Ron\Desktop\run_python_script . con dơi

Cuối cùng, nhấp vào Kết thúc, và bạn sẽ ổn thôi. Từ thời điểm này trở đi, bạn sẽ được chào đón bằng 'Xin chào thế giới'. ’ hàng ngày lúc 6 giờ sáng

lịch trình là một công cụ lập lịch trình đang xử lý cho các công việc định kỳ sử dụng mẫu trình tạo để định cấu hình. Lịch biểu cho phép bạn chạy các hàm Python (hoặc bất kỳ hàm nào khác có thể gọi được) định kỳ theo các khoảng thời gian định trước bằng cú pháp đơn giản, thân thiện với con người

Chúng tôi chạy nhiều nhiệm vụ trong công việc hàng ngày có thể được tự động hóa thay vì thực hiện lặp đi lặp lại. Bộ lập lịch tác vụ cho phép bạn chạy tác vụ của mình sau một khoảng thời gian cụ thể và có thể được đặt để thực hiện tác vụ vào bất kỳ thời điểm nào, có thể là cuối tuần hoặc hàng ngày. Lập lịch có thể hữu ích để tìm nạp dữ liệu từ cơ sở dữ liệu hoặc lưu trữ một số dữ liệu theo định kỳ. Lập lịch cũng có thể được sử dụng để đào tạo các mô hình học máy khi có dữ liệu mới. Hãy xem cách chúng ta có thể lập lịch tác vụ bằng Python

Python cung cấp một mô-đun lập lịch biểu chung có tên là schedule. Bằng cách sử dụng mô-đun này, chúng ta có thể dễ dàng chạy tập lệnh của mình sau một khoảng thời gian cố định. Bạn có thể cài đặt nó bằng lệnh sau -

pip install schedule

Hãy xem một ví dụ -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import schedule
import io
import sys
import time
import pickle
import os
import json
from urllib.request
import urlopen
from datetime
import date

today = date.today()

URL = 'https://api.exchangerate-api.com/v4/latest/USD'

def wait_for_internet_connection():
  while True:
  try:
  # # # Random url to check
for internet connection
response = urlopen('http://216.58.192.142', timeout = 1)
return
except Exception as e:
  # # # Logs can be captured
pass

def job():
  print("Loading...")
response = urlopen(URL, timeout = 5)
  .read()
response.decode('utf8')
  .replace("'", '"')
inr_rate = json.loads(response)['rates']['INR']
file = open('output.txt', 'a')
file.write(today.strftime("%d/%m/%Y") + ' - ' + str(inr_rate) + '\n')
file.close()

schedule.every()
  .day.at("10:30")
  .do(job) # # # Everyday at 10: 30
#schedule.every(5)
  .seconds.do(job) # # # Every 5 seconds
#schedule.every()
  .sunday.at("10:30")
  .do(job) # # # Every Sunday at 10: 30

while 1:
  wait_for_internet_connection()
schedule.run_pending()
time.sleep(1)

Bạn có thể lưu tệp này dưới dạng script.py. Trong ví dụ này, chúng tôi đang gọi API REST để nhận tỷ lệ chuyển đổi từ USD sang INR. Chúng tôi đã tạo một hàm wait_for_internet_connection để kiểm tra kết nối mạng. Nếu không, tập lệnh của chúng tôi có thể gây ra lỗi và dừng đột ngột

run_pending() chạy tất cả các công việc được lên lịch chạy. Chúng ta phải giữ nó trong một vòng lặp để nó có thể chạy mọi lúc.
Giả sử chúng tôi muốn nhận chuyển đổi hàng ngày và muốn chạy chuyển đổi đó vào một thời điểm cố định. Chúng ta có thể đạt được điều này với chức năng every() của mô-đun lịch trình.

"Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py"
pause
0

Hàm này nhận đầu vào là công việc cần thực hiện. Khi thời gian của máy đạt đến thời gian đã định, nó sẽ gọi hàm

"Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py"
pause
1 để thực hiện công việc

Hàm

"Path where your Python exe is stored\python.exe" "Path where your Python script is stored\script name.py"
pause
2 lấy một chuỗi thời gian trong HH. định dạng MM

Để giữ cho tập lệnh này chạy, chúng tôi cần mở một thiết bị đầu cuối hoặc bảng điều khiển và chạy schedule.0 Bây giờ, hãy để nó chạy

Đó là nó. Tập lệnh này sẽ thực thi chức năng dựa trên thời gian máy của bạn khi đạt đến khoảng thời gian nhất định

Có nhiều thư viện khác cũng có thể được sử dụng để thực hiện lập lịch trình. Nhược điểm duy nhất của phương pháp này là để chạy tập lệnh ở chế độ nền, chúng tôi phải luôn BẬT máy của mình. Đối với các tác vụ sản xuất, chúng tôi có thể xây dựng máy chủ của riêng mình và thực hiện lập lịch trình ở đó hoặc chúng tôi có thể sử dụng một số dịch vụ dựa trên đám mây của bên thứ ba