问题标签 [python-gearman]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
251 浏览

python - Scrapy 和 Gearman

我正在使用 Scrapy 1.0.5 和 Gearman 创建分布式蜘蛛。这个想法是构建一个蜘蛛,从一个 gearman 工作脚本调用它,并一次传递 20 个 URL,从一个 gearman 客户端爬到工作人员,然后到蜘蛛。

我能够启动工作人员,将 URL 从客户端传递给蜘蛛进行爬行。第一个 URL 或 URL 数组确实会被拾取和抓取。蜘蛛完成后,我无法重用它。我收到蜘蛛关闭的日志消息。当我再次启动客户端时,蜘蛛会重新打开,但不会爬行。

这是我的工人:

这是我的蜘蛛的代码。

第一个客户端运行会产生结果,无论是单个 URL 还是多个 URL,我都会获得所需的数据。

在第二次运行时,蜘蛛打开并且没有结果。这就是我回来的东西,它停止了

我能够从 worker 和 spider 打印一个或多个 URL,并确保它们在第一次工作运​​行和第二次非工作运行时被传递。我花了 2 天时间,但没有得到任何结果。我会很感激任何指示。

0 投票
1 回答
172 浏览

message-queue - 如何在 Gearman 中提交非阻塞作业?

我想用来result = gearman_client.submit_job("reverse_task", "Hello World!", wait_until_complete=False)向 Gearman Job Server 提交非阻塞作业。然而,result.state总是'CREATED',而且result.complete总是False。如果我更改wait_until_completeTrue,则一切正常。这太连线了。任何人都可以帮忙吗?