最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python基于json文件實(shí)現(xiàn)的gearman任務(wù)自動(dòng)重啟代碼實(shí)例

 更新時(shí)間:2019年08月13日 11:10:08   作者:Leslie-x  
這篇文章主要介紹了python基于json文件實(shí)現(xiàn)的gearman任務(wù)自動(dòng)重啟代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一:在gearman任務(wù)失敗后,調(diào)用task_failed

def task_failed(task, *args):
  info = '\n'.join(args)
  datetime = local_datetime()
  text = '{} FAILED:\n{}\n當(dāng)前響應(yīng)worker已關(guān)閉\n{}\n-->【{}】'.format(task, info, datetime, task)
  print(text)
  check_frequency(task)

二:打印失敗信息后,調(diào)用check_frequency檢查任務(wù)5分鐘內(nèi)的重啟次數(shù)

def check_frequency(task):
  instance = TaskReloadMonitor()
  now = time.time()
  task_info = instance.open(task.lower())
  if not task_info:
    return
  worker = task_info.get('worker')
  last_time = task_info.get('last_time')
  if not last_time:
    task_info['timer'] = 1
    task_info['last_time'] = now
    instance.write()
    task_reload(task, worker, task_info['timer'])
    return
  if int(now) - int(last_time) > 300:
    task_info['timer'] = 1
    task_info['last_time'] = now
    instance.write()
    task_reload(task, worker, task_info['timer'])
    return
  timer = task_info.get('timer')
  if not (timer + 1 > 3):
    task_info['timer'] = timer + 1
    task_info['last_time'] = now
    instance.write()
    task_reload(task, worker, task_info['timer'])

三:確認(rèn)重啟任務(wù)后,利用subprocess重啟任務(wù),subprocess.Popen方法可以非阻塞運(yùn)行cmd命令

def task_reload(task, worker, timer):
  from coursepoints.settings import BASE_DIR
  manage = os.path.join(BASE_DIR, 'manage.py')
  datetime = local_datetime()
  command = 'python {} {}'.format(manage, worker)
  subprocess.Popen(command, shell=True)
  text = '-->task reload:{}\n-->timer:{}\n-->{}'.format(task, timer, datetime)
  print(text)

json文件讀寫(xiě)

class TaskReloadMonitor():
  def __init__(self):
    pass
  @property
  def path(self):
    path = Path(__file__).parent.joinpath('task.json')
    return path
  def open(self, task):
    try:
      f = open(self.path, 'r', encoding='utf8')
      data = json.loads(f.read())
      f.close()
      self.task_data = data
      task_info = data.get(task)
      return task_info
    except Exception as e:
      print(e)
      return None
  def write(self):
    try:
      f = open(self.path, 'w', encoding='utf8')
      data = json.dumps(self.task_data)
      f.write(data)
      f.close()
    except Exception as e:
      print(e)

json文件內(nèi)容

{
 "pptconvert": {
  "worker": "pptconvert",
  "timer": 1,
  "last_time": 1555356612.9220166
 },
 "screencapture": {
  "worker": "screencapture",
  "timer": 0
 },
 "snapscreen": {
  "worker": "snapscreen",
  "timer": 1,
  "last_time": 1555441223.166838
 }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用GitHub和Python實(shí)現(xiàn)持續(xù)部署的方法

    使用GitHub和Python實(shí)現(xiàn)持續(xù)部署的方法

    這篇文章主要介紹了使用GitHub和Python實(shí)現(xiàn)持續(xù)部署的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • 一行代碼生成Tableau可視化圖表的方法

    一行代碼生成Tableau可視化圖表的方法

    本文主要介紹了一行代碼生成Tableau可視化圖表的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Python在字典中獲取帶權(quán)重的隨機(jī)值實(shí)現(xiàn)方式

    Python在字典中獲取帶權(quán)重的隨機(jī)值實(shí)現(xiàn)方式

    這篇文章主要介紹了Python在字典中獲取帶權(quán)重的隨機(jī)值,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • Pandas讀取Excel文件的六種方法

    Pandas讀取Excel文件的六種方法

    Pandas 是一個(gè) Python 數(shù)據(jù)分析庫(kù),可以用來(lái)讀取 Excel 文件,Pandas提供了多種讀取Excel文件的方法,本文將給大家分享一些官方推薦的6種方法,代碼示例講解得非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 使用python flask框架開(kāi)發(fā)圖片上傳接口的案例詳解

    使用python flask框架開(kāi)發(fā)圖片上傳接口的案例詳解

    剛領(lǐng)導(dǎo)安排任務(wù),需求是這樣的開(kāi)發(fā)一個(gè)支持多格式圖片上傳的接口,并且將圖片壓縮,支持在線預(yù)覽圖片,下面小編分享下使用python flask框架開(kāi)發(fā)圖片上傳接口的案例詳解,感興趣的朋友一起看看吧
    2022-04-04
  • Django JSonResponse對(duì)象的實(shí)現(xiàn)

    Django JSonResponse對(duì)象的實(shí)現(xiàn)

    本文主要介紹了Django JSonResponse對(duì)象的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python使用socket的UDP協(xié)議實(shí)現(xiàn)FTP文件服務(wù)功能

    Python使用socket的UDP協(xié)議實(shí)現(xiàn)FTP文件服務(wù)功能

    這篇文章主要介紹了Python使用socket的UDP協(xié)議實(shí)現(xiàn)FTP文件服務(wù),本示例主要是用Python的socket,使用UDP協(xié)議實(shí)現(xiàn)一個(gè)FTP服務(wù)端、FTP客戶端,用來(lái)實(shí)現(xiàn)文件的傳輸,需要的朋友可以參考下
    2023-10-10
  • 使用PyAudio進(jìn)行音頻處理的詳細(xì)指南

    使用PyAudio進(jìn)行音頻處理的詳細(xì)指南

    PyAudio是一個(gè)基于PortAudio庫(kù)的Python綁定,它允許Python程序直接訪問(wèn)和操作音頻設(shè)備,下面我們就來(lái)學(xué)習(xí)一下PyAudio處理音頻的具體操作吧
    2025-02-02
  • Python實(shí)現(xiàn)合并字典的方法

    Python實(shí)現(xiàn)合并字典的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)合并字典的方法,涉及Python針對(duì)字典的遍歷與合并的相關(guān)技巧,需要的朋友可以參考下
    2015-07-07
  • Python簡(jiǎn)單實(shí)現(xiàn)子網(wǎng)掩碼轉(zhuǎn)換的方法

    Python簡(jiǎn)單實(shí)現(xiàn)子網(wǎng)掩碼轉(zhuǎn)換的方法

    這篇文章主要介紹了Python簡(jiǎn)單實(shí)現(xiàn)子網(wǎng)掩碼轉(zhuǎn)換的方法,涉及Python字符串相關(guān)操作技巧,需要的朋友可以參考下
    2016-04-04

最新評(píng)論

温泉县| 乡城县| 郓城县| 读书| 临湘市| 凤城市| 平乐县| 平泉县| 六盘水市| 绥中县| 蒙阴县| 巴青县| 石阡县| 措勤县| 大城县| 衡阳市| 嘉黎县| 和硕县| 晋宁县| 宁阳县| 志丹县| 江达县| 吉安县| 瑞金市| 枝江市| 松江区| 礼泉县| 永州市| 方城县| 珲春市| 牙克石市| 海城市| 名山县| 阜南县| 宝丰县| 桃园市| 平阴县| 瓦房店市| 拜城县| 琼海市| 呼和浩特市|