จัดการ job scheduling

ปกติในการจัดการพวก job scheduling นั้น มักจะใช้พวก crontab เป็นหลัก หรืออาจจะไปใช้งานพวก AirFlow ไป ก็ช่วยได้เยอะ แต่ลองไปค้นหาเพิ่มเติ่ม ก็เจอ Rocketry ซึ่งพัฒนาด้วยภาษา Python ที่สำคัญเขียน code ง่าย ๆ เพื่อจัดการ job scheduling ดังนั้นมาลองใช้งานกันดูหน่อย

2021-10-18 11:57:36 - @ratanon

สิ่งแรกจากการใช้งานตัว Rocketry นั้น คือ

ตัวอย่าง code ง่าย ๆ เป็นดังนี้

from rocketry import Rocketry
	app = Rocketry()
	@app.task('daily')
	def do_things():
	    ...
	if __name__ == "__main__":
	    app.run()

สิ่งที่ชอบคือ การกำหนด schedule ของแต่ละ function ว่าทำงานตอนไหน

ที่อ่านเข้าใจได้ง่าย ยกตัวอย่างเช่น

รวมทั้งยังสามารถทำงานได้หลากหลายมากขึ้น

แต่ยังคงความง่ายของ code ที่เขียนออกมา ยกตัวอย่างเช่น

ตัวอย่างของการทำงานแยกออกจาก thread/process หลัก

@app.task("daily", execution="main")
	def do_on_main():
	    ...
	@app.task("daily", execution="thread")
	def do_on_thread():
	    ...
	@app.task("daily", execution="process")
	def do_on_process():
	    ...

เป็น project ที่นำมาใช้แล้ว ช่วยให้จัดการ job scheduling ได้สะดวกยิ่งขึ้น น่าสนใจมาก ๆ ลองทดลองใช้กันดูครับ

Rocketry




More Posts