【问题标题】:Call python gearman worker using laravel 5使用 laravel 5 调用 python gearman worker
【发布时间】:2015-10-03 07:07:26
【问题描述】:

我正在使用 laravel 5。我需要的是调用 python gearman worker

我在 python 中创建了一个 gearman worker。 我在 laravel 5 中创建了一个 gearman 客户端

我在控制器中直接添加了 gearman 客户端代码,例如:

$client = new GearmanClient();
$client->addServer();
$job_data = array("func_name" => "searchTweets", "query" => "query_to_search");
$result = $client->doNormal("php_twitter_worker", json_decode($job_data));
if ($result) {
    print_r($result);
}

但它会引发错误:

Class 'App\Http\Controllers\GearmanClient' not found

我知道错误是什么,因为控制器中没有 GearmanClient 类。其实我不知道怎么用。

在做了一些研发之后,我找到了一个使用gearman in laravel5 的包,但不知道如何将其用作 Gearman 客户端以及它如何调用我的 python gearman worker

对此有什么帮助吗?

【问题讨论】:

  • 嗨!你在用作曲家吗?如果是,Gearman 需要什么库?您肯定在这里缺少使用命名空间包含
  • 是的,在 laravel 5 中,您需要使用 composer 自动包含您需要的库,然后将它们添加到提供程序并可选地给它一个别名。你知道怎么做吗?
  • @Thomas:我正在使用作曲家。但是对于 gearman,我不需要任何命名空间。我已经在我的lampp中直接安装了gearman。 Gearman 直接在核心 php 中工作,不使用任何命名空间。但是如何在 laravel5 中使用呢。
  • @JuanBonnett:不,我不知道。你能帮帮我吗?
  • 你是说你可以实例化 GearmanClient();在任何其他使用 vanilla PHP 但不是 laravel 的应用程序中?

标签: php python laravel-5 gearman


【解决方案1】:

因为你的类是命名空间的,你的控制器在那里,PHP 将在这个命名空间内寻找一个类。

因此,要使用根命名空间中的类,您应该使用 use 语句或在类名前加上 \,\ 是根命名空间。

use GearmanClient;

$client = new \GearmanClient();

使用一个或另一个,而不是两个,我上面的代码实际上很混乱......

【讨论】:

  • 非常感谢。你节省了我的时间。
猜你喜欢
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
相关资源
最近更新 更多