Skip to content

DI problem when firing Event that's triggered from Queue #2571

@bitinn

Description

@bitinn

So my scenario is: a feed url is pushed onto a Queue, when it run, the crawler job signals Event where other controller will take the data and process it.

The problem is, when it tries to init a controller, DI failed, even though I have explicit binding set as a ServiceProvider. I can verified that such Event works when called directly from a controller.

[2013-10-28 03:57:38] log.ERROR: exception 'Illuminate\Container\BindingResolutionException' with message 'Target [Library\Processor\ProcessorInterface] is not instantiable.' in /var/www/leaf/vendor/laravel/framework/src/Illuminate/Container/Container.php:310
Stack trace:
#0 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Container/Container.php(243): Illuminate\Container\Container->build('Library\Process...', Array)
#1 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(442): Illuminate\Container\Container->make('Library\Process...', Array)
#2 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Container/Container.php(393): Illuminate\Foundation\Application->make('Library\Process...')
#3 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Container/Container.php(356): Illuminate\Container\Container->resolveClass(Object(ReflectionParameter))
#4 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Container/Container.php(328): Illuminate\Container\Container->getDependencies(Array)
#5 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Container/Container.php(243): Illuminate\Container\Container->build('Controllers\Uni...', Array)
#6 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(442): Illuminate\Container\Container->make('Controllers\Uni...', Array)
#7 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(292): Illuminate\Foundation\Application->make('Controllers\Uni...')
#8 [internal function]: Illuminate\Events\Dispatcher->Illuminate\Events\{closure}('http://www.hexi...', 'page.crawler')
#9 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(179): call_user_func_array(Object(Closure), Array)
#10 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(209): Illuminate\Events\Dispatcher->fire('page.crawler', Array)
#11 /var/www/leaf/app/controllers/CoreController.php(85): Illuminate\Support\Facades\Facade::__callStatic('fire', Array)
#12 /var/www/leaf/app/controllers/CoreController.php(85): Illuminate\Support\Facades\Event::fire('page.crawler', Array)
#13 /var/www/leaf/app/controllers/CrawlerController.php(71): CoreController->_event('page.crawler', Array)
#14 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php(60): CrawlerController->feed(Object(Illuminate\Queue\Jobs\BeanstalkdJob), Array)
#15 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Queue/Jobs/BeanstalkdJob.php(47): Illuminate\Queue\Jobs\Job->resolveAndFire(Array)
#16 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(68): Illuminate\Queue\Jobs\BeanstalkdJob->fire()
#17 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Queue/Worker.php(46): Illuminate\Queue\Worker->process(Object(Illuminate\Queue\Jobs\BeanstalkdJob), 0)
#18 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Queue/Console/WorkCommand.php(62): Illuminate\Queue\Worker->pop(NULL, 'new-feed', 0, 128, 3)
#19 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Console/Command.php(108): Illuminate\Queue\Console\WorkCommand->fire()
#20 /var/www/leaf/vendor/symfony/console/Symfony/Component/Console/Command/Command.php(244): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#21 /var/www/leaf/vendor/laravel/framework/src/Illuminate/Console/Command.php(96): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 /var/www/leaf/vendor/symfony/console/Symfony/Component/Console/Application.php(897): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /var/www/leaf/vendor/symfony/console/Symfony/Component/Console/Application.php(191): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Queue\Console\WorkCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /var/www/leaf/vendor/symfony/console/Symfony/Component/Console/Application.php(121): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /var/www/leaf/artisan(59): Symfony\Component\Console\Application->run()
#26 {main} [] []

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions