做專案的自動化過程中,經常聽到job、介面、mq訊息相關的名詞。
就想把這些個東西搞明白,定義、區別、作用,實現等。
1、job
是定時任務。在某個時間段、某個時間點執行。
定時任務中可以呼叫介面,可以傳送mq訊息。
例如:每天早上六點喊我起床就是乙個定時任務,就算是乙個job了。
python中實現job:
"""1.迴圈sleep實現"""
from datetime import datetime
import time
# 每n秒執行一次
def timer(n):
while true:
print(datetime.now().strftime("%y-%m-%d %h:%m:%s"))
time.sleep(n)
# 5s
timer(5)
"""2.threading模組中的timer實現job"""
from datetime import datetime
from threading import timer
# 列印時間函式
def printtime(inc):
print(datetime.now().strftime("%y-%m-%d %h:%m:%s"))
t = timer(inc, printtime, (inc,))
t.start()
# 5s
printtime(5)
"""
3.使用sched模組
(1)生成排程器:
s = sched.scheduler(time.time,time.sleep)
第乙個引數是乙個可以返回時間戳的函式,第二個引數可以在定時未到達之前阻塞。
(2)加入排程事件
其實有 enter、enterabs 等等,我們以 enter 為例子。
s.enter(x1,x2,x3,x4)
四個引數分別為:間隔事件、優先順序(用於同時間到達的兩個事件同時執行時定序)、被呼叫觸發的函式,給觸發函式的引數(注意:一定要以 tuple 給,如果只有乙個引數就(xx,))
(3)執行
s.run()
注意 sched 模組不是迴圈的,一次排程被執行後就 over 了,如果想再執行,請再次 enter
"""import sched
import time
from datetime import datetime
# 初始化sched模組的 scheduler 類
# 第乙個引數是乙個可以返回時間戳的函式,第二個引數可以在定時未到達之前阻塞。
schedule = sched.scheduler(time.time, time.sleep)
# 被週期性排程觸發的函式
def printtime(inc):
print(datetime.now().strftime("%y-%m-%d %h:%m:%s"))
schedule.enter(inc, 0, printtime, (inc,))
# 預設引數60s
def main(inc=60):
# enter四個引數分別為:間隔事件、優先順序(用於同時間到達的兩個事件同時執行時定序)、被呼叫觸發的函式,
# 給該觸發函式的引數(tuple形式)
schedule.enter(0, 0, printtime, (inc,))
schedule.run()
# 10s 輸出一次
main(10)
"""
4.apscheduler定時框架
pip install apscheduler
具體的博文可看:
"""from apscheduler.schedulers.blocking import blockingscheduler
from datetime import datetime
# 輸出時間
def job():
print(datetime.now().strftime("%y-%m-%d %h:%m:%s"))
# blockingscheduler
scheduler = blockingscheduler()
scheduler.add_job(job, 'cron', day_of_week='1-5', hour=16, minute=7)
scheduler.start()
2、介面
輸入請求資料,進行邏輯處理,然後返回響應資料。一般都是資料庫的crud操作。
3、mq訊息
分為生產者、消費者、訊息。
以上完成了job、介面、q訊息的基本闡述。
深入biztalk清理訊息作業 job
biztalk 中訊息儲存在 messagebox 資料庫的 spool 表和parts 表中。spool 表的內容是訊息的總體性描述和訊息的上下文屬性,一條訊息在此表中為一條記錄。parts 表存放多部分訊息的各個部分,乙個部分在此表中佔一條記錄。哪乙個是正文部分由 spool 表中的uidbod...
Python UDP協議,冒充飛Q傳送訊息
import socket 網路通訊 tcp,udp 飛q傳送訊息報文的格式 mystr 1 lbt4 10 32899 002481627512 0 0 0 1289671407 你的baby 你的hello 288 你好妹子 socket.af inet 網路通訊,windows af inet...
jenkins構建job後自動發釘釘訊息通知
目前,越來越多的公司使用了釘釘辦公,那麼我們在持續整合中,也可以直接選擇dingding外掛程式的,對傳送的釘釘訊息進行了定製,直接安裝乙個外掛程式就可以傳送了,但是外掛程式只是簡單的通知,不支援 群裡的人,這樣的需求,可對釘釘進行二次開發。一 獲取釘釘的token值供後續使用。找到釘釘群 群主或者...