我有一个长期运行的python脚本def updater(id,quantity)
@order = current_order
@order_item = @order.order_items.find(id)
quantity = @order_item.quantity + quantity.to_i
@order_item.update(quantity:quantity)
@order_items = @order.order_items
end
。
如果我通过终端一个接一个地调用该脚本,是否会引起任何问题:
script.py
-----首次调用
python script.py
-----第一次调用之前的第二次调用。
由于python是一种解释型语言,所以这两个脚本之间是否会有干扰?
或者复制脚本然后运行它更安全吗?
答案 0 :(得分:2)
源代码没有任何危险;每次调用都会分别读取文件,分配自己的局部变量等。但是,如果脚本使用任何外部引用(例如写入公用文件),则可能会产生干扰。
答案 1 :(得分:2)
这完全取决于脚本的作用。
从最简单的意义上讲,答案是否定的-尽管这两个调用运行相同的代码,但是它们固有地不共享任何状态,并且可以并行运行。就像您计算机上的任何程序一样(例如,位于单独终端中的bash
shell),独立调用具有其自己的处理空间。
您的脚本可能相互干扰的唯一情况是它们都使用共享资源。例如,如果script.py
创建了一个名为/tmp/state.py
的文件,那么显然这两个调用会冲突。