dereuromark/cakephp-queue

[InvalidArgumentException] No job type can be resolved error for custom queue task

Closed this issue · 1 comments

Hi, I have followed the README, ran all migrations, configured app_queue.php , loaded in bootstrap and created a custom queue task [src/Queue/Task/GenerateMeetingsTask.php] in my cakephp application.

I have added the createJob method for my custom queue task within one of the models.

I am getting the below error when the code is trying to create a queue job to generate meetings for a student,
This is my code snippet I have in the model

$queuedJobsTable = TableRegistry::getTableLocator()->get('QueuedJobs');
$queuedJobsTable->createJob('Queue.GenerateMeetings', [
'student' => $newStudent, //object
'date' => date('Y-m-d')
]);

Below is the error,
error: [InvalidArgumentException] No job type can be resolved for Queue.GenerateMeetings in /var/www/html/pm-server/vendor/dereuromark/cakephp-queue/src/Queue/TaskFinder.php on line 140

For Full Stack Trace
Stack Trace:

  • /var/www/html/pm-server/vendor/dereuromark/cakephp-queue/src/Model/Table/QueuedJobsTable.php:217
  • /var/www/html/pm-server/vendor/dereuromark/cakephp-qubootstreue/src/Model/Table/QueuedJobsTable.php:196
  • /var/www/html/pm-server/src/Model/Table/StudentsTable.php:643
  • /var/www/html/pm-server/src/Controller/Api/StudentsController.php:58
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Controller/Controller.php:539
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Controller/ControllerFactory.php:140
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Controller/ControllerFactory.php:115
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/BaseApplication.php:317
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Runner.php:77
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Middleware/CsrfProtectionMiddleware.php:138
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Runner.php:73
  • /var/www/html/pm-server/vendor/cakephp/authentication/src/Middleware/AuthenticationMiddleware.php:124
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Runner.php:73
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Middleware/BodyParserMiddleware.php:172
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Runner.php:73
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Routing/Middleware/RoutingMiddleware.php:161
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Runner.php:73
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php:68
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Runner.php:73
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Error/Middleware/ErrorHandlerMiddleware.php:126
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Runner.php:73
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Runner.php:58
  • /var/www/html/pm-server/vendor/cakephp/cakephp/src/Http/Server.php:90
  • /var/www/html/pm-server/webroot/index.php:40

Task file:

src/Queue/Task/GenerateMeetingsTask.php
<?php
namespace App\Queue\Task;

use Cake\ORM\TableRegistry;
use Queue\Queue\Task;

class GenerateMeetingsTask extends Task
{
/**
* @param array $data The array passed to QueuedJobsTable::createJob()
* @param int $jobId The id of the QueuedJob entity
* @return bool Success
*/
public $timeout = 120;
public $retires = 1;
public function run(array $data, $jobId): void
{ <logic> }

@dereuromark Do you have any thoughts on this? Please let me know if I missed any data.

It is due to the cakephp-queue plugin package requires permission to find tasks in the application folder. After setting permission, it is resolved and am closing this issue.