<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      延時隊列

      https://www.jianshu.com/p/a663e52e6488

      import queue
      import datetime
      import threading
      import functools
      
      
      class DelayedTask(object):
      
          def __init__(self, plan_time, job_func):
              self.plan_time = plan_time  # 單位: datetime
              self.job_func = job_func  # 執行的方法,此處是簡易版
      
      
      def total_seconds(td):
          return (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10 ** 6) / 10 ** 6
      
      
      class DelayQueue(queue.PriorityQueue):
          def __init__(self, maxsize=100):
              self.can_done = threading.Condition()
              super(DelayQueue, self).__init__()
      
          def put_task(self, task):
              self.put((task.plan_time, task))
      
          def get_task(self):
              self.can_done.acquire()
              try:
                  task = self._peek()
                  delta = total_seconds(task.plan_time - datetime.datetime.now())
                  while delta > 0:
                      self.can_done.wait(delta) # 這里會掛起,掛delta秒
                      task = self._peek()
                      delta = total_seconds(task.plan_time - datetime.datetime.now())
      
                  item = self.get()
                  self.can_done.notify_all()
                  return item[1]
              finally:
                  self.can_done.release()
      
          def _peek(self):
              self.not_empty.acquire()
              try:
                  while not self._qsize():
                      self.not_empty.wait()
      
                  return self.queue[0][1]
              finally:
                  self.not_empty.release()
      
      
      def hello_world(name):
          print("%s say hello world" %(name))
      
      
      if __name__ == '__main__':
          task1_hello_world = functools.partial(hello_world, name="dsgdtc5秒")
          task2_hello_world = functools.partial(hello_world, name="dsgdtc1秒")
          task1 = DelayedTask(plan_time=datetime.datetime.now() + datetime.timedelta(seconds=5),
                              job_func=task1_hello_world)
          task2 = DelayedTask(plan_time=datetime.datetime.now() + datetime.timedelta(seconds=1),
                              job_func=task2_hello_world)
          delay_queue = DelayQueue()
          # 5秒的先入隊列
          delay_queue.put_task(task1)
          res = delay_queue.get_task()
          res.job_func()
          # 1秒的后入隊列,1秒任務需要等5秒的完成后才執行。
          # 可以根據業務場景做多個優先級隊列解決,比如做3個隊列
          # 分別存放1秒鐘延遲任務;5秒鐘延遲任務;10秒鐘延遲任務。
          # 任意時間的解決方式。
          #  暫定利用redis的zset結構,(taskid, task, task_timestamp)用task_timestamp做score存入redis中,taskid是key
          #  taskid和task再放到一個bucket中
          #  然后加個輪詢,只輪詢score大于當前時間的key,拿到key后去bucket中找對應task
          delay_queue.put_task(task2)
          res = delay_queue.get_task()
          print(res)
          res.job_func()

      https://blog.csdn.net/weixin_39900286/article/details/111750070

      http://www.rzrgm.cn/hellojesson/p/11547014.html

      import sched,time
      def func(a):
        print(time.time(),"Hello Sched!",a)
      
      print(time.time())
      
      s = sched.scheduler(time.time,time.sleep)
      # 2為延后時間,1為優先級,func為函數名,("test1",)為函數參數
      
      s.enter(1,1,func,("test1",))
      s.enter(2,3,func,("test2",))
      s.enter(2,0,func,("test3",))
      s.enter(1,1,func,("test4",))
      s.run()
      print(time.time())

      import threading,time
      def func(a):
        print(time.time(),"Hello Sched!",a)
      
      print(time.time())
      s = threading.Timer(2,func,("test",))
      s.start()
      print(time.time())

      2022-04-01 22:00:54

       

      posted @ 2022-04-01 22:01  Hany47315  閱讀(77)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 美女网站免费观看视频| 亚洲人成电影在线天堂色| 亚洲人成小说网站色在线| 国产午夜福利精品视频| 亚洲第三十四九中文字幕| 成人免费区一区二区三区| 女同在线观看亚洲国产精品| 亚洲成人av在线综合| 国产精自产拍久久久久久蜜| 激情综合五月丁香亚洲| 国产亚洲精品第一综合另类无码无遮挡又大又爽又黄的视频 | 男人添女人下部高潮视频| 犍为县| 色伦专区97中文字幕| 欧美肥老太牲交大战| 亚洲av成人无码天堂| 人妻聚色窝窝人体WWW一区| 欧美黑人XXXX性高清版| 国产不卡一区不卡二区| 欧美高清freexxxx性| 国产美女久久久亚洲综合 | 国产精品福利自产拍在线观看| 欧美大屁股xxxx高跟欧美黑人| 亚洲av高清一区二区三| 国产精品中文字幕一区| 亚洲国产福利成人一区二区| 在线aⅴ亚洲中文字幕| 任我爽精品视频在线播放| 伊人久久久av老熟妇色| 国产精品中文一区二区| 欧美日韩精品一区二区三区高清视频 | 亚洲一区二区约美女探花| 亚洲国产成人av国产自| 无码h黄肉动漫在线观看| 4hu四虎永久免费地址ww416| 亚洲国产成人不卡高清麻豆| 超碰成人人人做人人爽| 免费现黄频在线观看国产| 久热久热中文字幕综合激情 | 亚洲欧美另类久久久精品播放的| 日韩精品一区二区三区激情视频|