如何在执行器池的asyncio代码中正确运行两个while循环?

时间:2015-07-10 23:49:29

标签: python multithreading python-3.x asynchronous python-asyncio

我想要同时运行两个函数。 心跳功能,即执行简单的while循环。 然后是另一个功能,它是脚本的核心,也是一个while循环。

当心跳功能继续前进时,肉和土豆功能一次破坏,永远不会循环......

我使用asyncio和executor池来实现我同时运行两个函数(循环)的目标。

另外,如何在使用执行程序池时显示错误/异常,我无法看到任何错误....

这里是代码:

   import lib.myFunctions
   import asyncio
   import oandapy       

   fmc = lib.myFunctions.FmcMixin()

   def meatAndPotatoes(currency_pair=sys.argv[1],
        time_compression=sys.argv[2],sleep_time=sys.argv[3]):
        while True:
           try:
             something = oanda.get_history()
             if (something):
                  print("niceeee")
             else:
                  print("ok cool")
           except:
             sleep(sleep_time)



  if __name__ == "__main__":
      executor = ProcessPoolExecutor(2)
      loop = asyncio.get_event_loop()
      asyncio.async(loop.run_in_executor(executor, meatAndPotatoes))
      scriptName = str(sys.argv[1]+"/"+sys.argv[2]+"/")
      asyncio.async(loop.run_in_executor(executor, \
         fmc.heartbeatFunction(scriptName)))
      loop.run_forever()

0 个答案:

没有答案