我通过lua脚本从浏览器执行python脚本:
os.execute('python scriptname.py --arg1 Test --arg2 Test2')
,然后我再次执行此操作(例如,刷新页面,发送表格)
os.execute('python scriptname.py --arg1 Test3 --arg2 Test4')
我希望仅在第一个脚本结束时才执行第二个脚本。 我希望将脚本添加到队列中,并从最早的脚本到最新的脚本执行。 我该怎么办?
答案 0 :(得分:0)
这与我参与 Codea (iPad的Lua开发环境)中的Lua的讨论线程非常相似:请参阅here。在该页面上,遵循 se24vad 对线程队列的使用。请注意,该页面上的代码不一定可移植,因为Codea提供了一些Lua内置的功能。我指向此页面的是想法,而不是特定的代码。
基本上,您的想法是您需要在线程队列(例如Lua协程)中对函数进行排队。在他的特定实现中,直到完成最上面的协程(队列表中的索引1)后,您才继续执行新的协程。换句话说,协程调用正在阻塞。
您将要实现一个协程队列,每个os.execute
调用都应作为一个单独的协程。
现在,我不确定它如何适合您的其余代码。我不知道您使用什么代码控制何时刷新页面。您将需要某种控制器代码来跟踪协程队列。
如果在您的用例中无法使用线程队列,则可能是python脚本需要以某种方式向浏览器报告完成情况。进行新的execute调用时,它将先检查完成变量,然后再继续。