任务进程需要四个步骤:

1 使用QueueManager注册用于获取Queue的方法名称,任务进程只能通过名称来在网络上获取Queue。

2 连接服务器,端口和验证口令必须与服务进程中的一致。

3 从网络上获取Queue,进行本地化

4 从task队列获取任务,并把结果写入result队列。

例子2:任务进程(taskWorker.py)

# coding=utf8import timefrom multiprocessing.managers import BaseManager


class QueueManager(BaseManager):
   
pass

# 使用QueueManager注册用于获取Queue的方法名称QueueManager.register('get_task_queue')
QueueManager.register(
'get_result_queue')
server_addr =
'127.0.0.1'print('连接到服务器%s ...'%server_addr)
m = QueueManager(
address=(server_addr,8001),authkey='kouling'.encode('utf-8'))
# 连接服务器m.connect()
task = m.get_task_queue()
result = m.get_result_queue()
# 从task队列获取任务,并把结果写入result队列while(not task.empty()):
    image_url = task.get(
True,timeout=5)
   
print('run task download %s...'%image_url)
    time.sleep(
1)
    result.put(
'%s--->success'%image_url)

print('处理结束...')

结果:

先启动服务端程序

python爬虫连载6_再启动

再启动任务端程序

python爬虫连载6_服务器_02