我在CloudRun中面临一个问题:下面我只显示调度部分(后台任务),但我也有一些Dash应用程序的代码。我希望有一个Dash应用程序和调度程序,它可以在同一个云运行应用程序上执行木星笔记本。我正在使用dockerFile进行部署。我尝试过用4CPU和4GiB内存修改CloudRun。
所有东西都在本地工作(Dash和调度),但似乎纸厂的执行在CloudRun中不起作用。笔记本目前只是在发送一封邮件。欢迎所有建议!谢谢,这是我的密码:
def run_continuously(interval=1):
cease_continuous_run = threading.Event()
class ScheduleThread(threading.Thread):
@classmethod
def run(cls):
while not cease_continuous_run.is_set():
schedule.run_pending()
time.sleep(interval)
continuous_thread = ScheduleThread()
continuous_thread.start()
return cease_continuous_run
def runPapermill1():
print('running 1')
sec = str(datetime.now().minute)
pm.execute_notebook(r'testPapermill.ipynb', r"OutputNotebook/output-" + sec + ".ipynb", kernel_name='python3', start_timeout=120)
if __name__ == '__main__':
schedule.every(50).seconds.do(runPapermill1)
# Start the background thread
stop_run_continuously = run_continuously()
server_port = os.environ.get('PORT', '8080')
app.run_server(debug=True, port=server_port, host='0.0.0.0')
# Stop the background thread
print('Stopping background Task')
stop_run_continuously.set()以下是CloudRun中的一个错误:
2022-03-21T15:18:54.442802ZTraceback (最近一次调用):File“/usr/local/lib/python3.8/tening.py”,第932行,在_bootstrap_inner self.run() File "/app/app.py“中,第90行,在run schedule.run_pending() File ()File 780,在文件"/usr/local/lib/python3.8/site-packages/schedule/init.py",行run_pending default_scheduler.run_pending() 100中,在run_pending self._run_job(job)文件"/usr/local/lib/python3.8/site-packages/schedule/init.py",行172中,在_run_job ret = job.run() File "/usr/local/lib/python3.8/site-packages/schedule/init.py",第661行中,在run ret = self.job_func() self.job_func "/app/app.py“中,第118行,在runPapermill1 pm.execute_notebook(r'testPapermill.ipynb‘)中,r”OutputNotebook/OutputNotebook/output-“+ sec + ".ipynb",内核_name=’python3 3‘,File pm.execute_notebook第107行,在execute_notebook nb = papermill_engines.execute_notebook_with_engine( "/usr/local/lib/python3.8/site-packages/papermill/engines.py",中第49行,在返回self.get_engine(engine_name).execute_notebook(nb,kernel_name,**kwargs)文件"/usr/local/lib/python3.8/site-packages/papermill/engines.py",第359行,在execute_notebook cls.execute_managed_notebook(nb_man,kernel_name,log_output=log_output,**kwargs)文件"/usr/local/lib/python3.8/site-packages/papermill/engines.py",第418行中,在"/usr/local/lib/python3.8/site-packages/papermill/clientwrap.py",execute_managed_notebook返回PapermillNotebookClient(nb_man,**final_kwargs).execute()文件的第43行中,在“与self.setup_kernel一起执行”(**kwargs):File "/usr/local/lib/python3.8/contextlib.py“中,第113行,在enter #en0#(self.gen) File "/usr/local/lib/python3.8/site-packages/nbclient/client.py",第562行中,在文件"/usr/local/lib/python3.8/site-packages/nbclient/util.py",第84行中,在包装返回(coro(*args,**kwargs))文件"/usr/local/lib/python3.8/site-packages/nbclient/util.py",第62行中,在just_run返回(Coro)文件"/usr/local/lib/python3.8/asyncio/base_events.py",第616行中,在"/usr/local/lib/python3.8/site-packages/nbclient/client.py",返回future.result()文件的第532行,在async_start_new_kernel_client中返回future.result文件的第96行,在async_start_new_kernel_client返回future.result()文件的结果=等待obj文件"/usr/local/lib/python3.8/site-packages/jupyter_client/client.py",第184行,在_async_wait_for_ready raise中(“内核在%d秒内没有响应”% timeout) RuntimeError:内核在120秒内没有响应
有时,IT开始运行,并且只停留在这里的例子下面
发布于 2022-03-22 14:21:06
找到解决办法:
我只需要在CloudRun上设置"CPU总是分配的“。这可以让我的破折号应用程序和后台任务(纸厂执行)在同一时间运行。我也将min实例设置为1。
https://stackoverflow.com/questions/71560256
复制相似问题