Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅当第一个脚本完成时才执行第二个python脚本_Python_Lua_Subprocess_Python Os - Fatal编程技术网

仅当第一个脚本完成时才执行第二个python脚本

仅当第一个脚本完成时才执行第二个python脚本,python,lua,subprocess,python-os,Python,Lua,Subprocess,Python Os,我通过lua脚本从浏览器执行python脚本: os.execute('python scriptname.py --arg1 Test --arg2 Test2') 然后我再做一次(例如刷新页面,发送表单) 我希望第二个脚本只在第一个脚本完成时执行。 我希望将脚本添加到队列中,并从最旧的脚本执行到最新的脚本。 如何做到这一点?这是一个非常类似于我参与的Codea中Lua(用于iPad的Lua开发环境)讨论主题的问题:请参阅。在该页面上,遵循se24vad对线程队列的使用。请注意,该页面上的代

我通过lua脚本从浏览器执行python脚本:

os.execute('python scriptname.py --arg1 Test --arg2 Test2')
然后我再做一次(例如刷新页面,发送表单)

我希望第二个脚本只在第一个脚本完成时执行。 我希望将脚本添加到队列中,并从最旧的脚本执行到最新的脚本。
如何做到这一点?

这是一个非常类似于我参与的Codea中Lua(用于iPad的Lua开发环境)讨论主题的问题:请参阅。在该页面上,遵循se24vad对线程队列的使用。请注意,该页面上的代码不一定是可移植的,因为Codea提供了一些Lua中未内置的功能。我指的是这一页的想法,而不是具体的代码

基本上,这个想法是您需要在线程队列中对函数进行排队(即luacoroutines)。在他的特定实现中,在顶部的一个(队列表中的索引1)完成之前,您不会移动到新的协同路由。换句话说,协同路由调用被阻塞

您将希望与每个
操作系统实现一个协程队列。将
调用作为单独的协程执行

现在,我不确定这与代码的其余部分有什么关系。我不知道你有什么代码来控制页面刷新的发生。您需要某种控制器代码来跟踪协同路由队列

如果在您的用例中无法使用线程队列,那么python脚本可能需要以某种方式向浏览器报告完成情况。当发出新的execute调用时,它会在继续之前首先检查completion变量

os.execute('python scriptname.py --arg1 Test3 --arg2 Test4')