Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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_Loops_Parallel Processing - Fatal编程技术网

Python 并行、相互依存的过程-如何将变量推送到不同的领域?

Python 并行、相互依存的过程-如何将变量推送到不同的领域?,python,loops,parallel-processing,Python,Loops,Parallel Processing,这是问题的后续,如果有兴趣的话 为免您阅读,以下是总结: 我有两个进程,它们都需要无限期地运行 我需要过程1扫描特定的网址像每10分钟左右的网站。这些URL存储在SetQueue中,因此我没有双重条目。每个循环将产生一定数量的URL。在第一次运行之后,大多数已经存储,但也会有一些新的,它们也需要存储在队列中 进程2接收一个列表,该列表来自队列,并每隔10秒连续刮取URL以检查AJAX值的变化 我需要帮助的问题是,如何使进程2在以与进程1不同的频率运行时接收更新的列表 以下是我的流程代码模型: f

这是问题的后续,如果有兴趣的话

为免您阅读,以下是总结: 我有两个进程,它们都需要无限期地运行

我需要过程1扫描特定的网址像每10分钟左右的网站。这些URL存储在SetQueue中,因此我没有双重条目。每个循环将产生一定数量的URL。在第一次运行之后,大多数已经存储,但也会有一些新的,它们也需要存储在队列中

进程2接收一个列表,该列表来自队列,并每隔10秒连续刮取URL以检查AJAX值的变化

我需要帮助的问题是,如何使进程2在以与进程1不同的频率运行时接收更新的列表

以下是我的流程代码模型:

from multiprocessing import Process, Queue
import time, random

def a(queue):
    while True:
        x=[random.randint(0,10), random.randint(0,10), random.randint(0,10)]
        print 'send', x
        queue.put(x)
        time.sleep(20)


def b(queue):
    x = queue.get()
    print 'recieve', x
    while True:        
        for i in x:
            print i
            time.sleep(2)

if __name__ == '__main__':
    q = Queue()
    p1 = Process(target=a, args=(q,))
    p2 = Process(target=b, args=(q,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()
该模型有一个我无法解决的大问题:如何让流程b接收更新的列表?与我在引用的问题中得到的答案相比,我将while循环放在迭代
前面,因为这给了我一个我想要的持续处理循环。但很自然,来自进程a的所有新输入都会被忽略。

我确信,对于“真正的”程序员来说,这是一个非常简单的问题,但我在这里找不到解决方案。感谢您的帮助。我应该继续使用这个过程吗

听起来这是芹菜的任务。忘了添加,芹菜不支持Windows。我会试试,我在Mac上运行,所以芹菜可能会工作。谢谢@postoronnim我现在使用芹菜,但无法让我的工作线程重复,所以我仍然有相同的问题。这里的协议是什么,我可以编辑这个问题还是打开一个新的问题?@user2822564如果现在是芹菜问题,在它自己的主题下提问会让你有更好的机会得到答案,gl!