1

我试图运行我的 hello_worker.php 但它似乎没有检测到数据库。我正在使用 Laravel 4。

这是我在 Iron.io 中的代码:

<?php
// Worker code can be anything you want.
// echo "Hello!";
// print_r(getPayload());

// Simulating hard work for 5 seconds...
// sleep(5);

DB::table('test')->insert( array('content' => 'every one minute') );
// When you're ready press 'Run code ...'

这是我在电子邮件中收到的错误。

消息:运行期间发生:PHP 致命错误:在第 9 行的 /mnt/task/hello_worker.php 中找不到类“DB”

我集成的 API http://www.iron.io/

4

2 回答 2

0

要在 IronWorker 上运行代码,您必须将所有依赖项连同您的 worker 一起包含在内。无论哪个依赖项具有 DB 类,都必须包含它。这是一个具有依赖关系的示例工作者:

https://github.com/iron-io/dockerworker/blob/master/php/

你可以在 Laravel 应用程序之外使用 Laravel 的数据库模块 / ORM(称为Eloquent ORM),这里有一些关于如何做到这一点的信息:

http://www.edzynda.com/use-laravels-eloquent-orm-outside-of-laravel/

另一种选择是使用推送队列,它使用 IronMQ 将消息传递到应用程序的端点:

http://laravel.com/docs/5.0/queues#push-queues

这是一段视频,展示了这一点:

https://vimeo.com/64703617

希望有帮助。

于 2015-04-27T21:12:47.453 回答
0

我一直在将 iron.io 用于消息队列。我要求 Iron.io 在我的 Laravel 应用程序中调用特定 URL,并在 Laravel 应用程序中处理请求,而不是在远程 Iron.io 服务器中。

于 2015-04-21T14:55:27.060 回答