mtdowling / cron-expression

CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due
http://mtdowling.com/blog/2012/06/03/cron-expressions-in-php/
MIT License
4.9k stars 335 forks source link

What is this " 5 is not a valid position" #179

Closed shahidkarimi closed 2 years ago

shahidkarimi commented 4 years ago

Laravel 5.5 PHP 7.2

I am getting this error. php path is corrent.

subdesign commented 2 years ago

I have the same, only my error message is 6 is not a valid position. I have a scheduled command with everyFiveMinutes(), so not manually set, but the trace contains the following:

Cron\CronExpression->setExpression('*/5 * * * * *')

As you see there is one more asterisk sign, in total 6, that's the error.

This was working before! Something changed under the hood I think.

Here is the full stack trace, you see the call on line #4:

Stack Trace:
#0 /var/www/project/vendor/dragonmantank/cron-expression/src/Cron/FieldFactory.php(30): Cron\FieldFactory->instantiateField(5)
#1 /var/www/project/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php(230): Cron\FieldFactory->getField(5)
#2 /var/www/project/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php(212): Cron\CronExpression->setPart(5, '*')
#3 /var/www/project/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php(187): Cron\CronExpression->setExpression('*/5 * * * * *')
#4 /var/www/project/vendor/dragonmantank/cron-expression/src/Cron/CronExpression.php(154): Cron\CronExpression->__construct('*/5 * * * * *', NULL)
#5 /var/www/project/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(296): Cron\CronExpression::factory('*/5 * * * * *')
#6 /var/www/project/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php(269): Illuminate\Console\Scheduling\Event->expressionPasses()
#7 /var/www/project/vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php(60): Illuminate\Console\Scheduling\Event->isDue(Object(Illuminate\Foundation\Application))
#8 [internal function]: Illuminate\Support\HigherOrderCollectionProxy->Illuminate\Support\{closure}(Object(Illuminate\Console\Scheduling\Event), 0)
#9 /var/www/project/vendor/laravel/framework/src/Illuminate/Support/Arr.php(597): array_filter(Array, Object(Closure), 1)
#10 /var/www/project/vendor/laravel/framework/src/Illuminate/Support/Collection.php(413): Illuminate\Support\Arr::where(Array, Object(Closure))
#11 /var/www/project/vendor/laravel/framework/src/Illuminate/Support/HigherOrderCollectionProxy.php(61): Illuminate\Support\Collection->filter(Object(Closure))
#12 /var/www/project/vendor/laravel/framework/src/Illuminate/Console/Scheduling/Schedule.php(141): Illuminate\Support\HigherOrderCollectionProxy->__call('isDue', Array)
#13 /var/www/project/vendor/laravel/framework/src/Illuminate/Console/Scheduling/ScheduleRunCommand.php(52): Illuminate\Console\Scheduling\Schedule->dueEvents(Object(Illuminate\Foundation\Application))
#14 [internal function]: Illuminate\Console\Scheduling\ScheduleRunCommand->handle()
#15 /var/www/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(29): call_user_func_array(Array, Array)
#16 /var/www/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(87): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#17 /var/www/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(31): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#18 /var/www/project/vendor/laravel/framework/src/Illuminate/Container/Container.php(549): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#19 /var/www/project/vendor/laravel/framework/src/Illuminate/Console/Command.php(183): Illuminate\Container\Container->call(Array)
#20 /var/www/project/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#21 /var/www/project/vendor/laravel/framework/src/Illuminate/Console/Command.php(170): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#22 /var/www/project/vendor/symfony/console/Application.php(992): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 /var/www/project/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Console\Scheduling\ScheduleRunCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 /var/www/project/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#25 /var/www/project/vendor/laravel/framework/src/Illuminate/Console/Application.php(88): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#26 /var/www/project/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(121): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#27 /var/www/project/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#28 {main} 

Laravel 5.5.49 PHP 7.2

dragonmantank commented 2 years ago

Hello!

This project is no longer active and has been superceded by https://packagist.org/packages/dragonmantank/cron-expression.

It looks like you've installed the new library under Laravel 5.5, and they are not compatible. Laravel 5.5 requires mtdowling/cron-expression. You will need to downgrade back to mtdowling/cron-expression.

To use the new library, you will need to upgrade to Laravel 5.6 or higher.