lavary / crunz Goto Github PK
View Code? Open in Web Editor NEWA PHP-based job scheduler
License: MIT License
A PHP-based job scheduler
License: MIT License
I want to have my default values for some of the fields like email information, but I want my users to be able to modify some of the config.
Can I have only one default config, and then have the other config to modify?
I nice to have would be to include the current timestamp when adding Log Output to a file.
Whenever I run crunz schedule:list
the list that is generated marks all entries with the # 1, example below:
$ ./crunz schedule:list
+---+----------------------------------+----------------+------------------------------+
| # | Task | Expression | Command to Run |
+---+----------------------------------+----------------+------------------------------+
| 1 | Garbage Collect Expired Sessions | 0 * * * * * | ./console cron sessions -q |
| 1 | Collect Stats from Previous Day | 30 0 * * * * | ./console stats:collect -q |
| 1 | General Garbage Collector | 45 1 * * 7 * | ./console cron garbage -q |
| 1 | Process Events | * * * * * * | ./console cron events -q |
| 1 | Reminders Level 1 | 50 11 * * * * | ./console cron reminders1 -q |
| 1 | Reminders Level 2 | 40 11 * * * * | ./console cron reminders2 -q |
| 1 | Reminders Level 3 | 30 11 * * * * | ./console cron reminders3 -q |
| 1 | Scheduled Promotions | */15 * * * * * | ./console cron promote -q |
| 1 | Shuffle and Stay on Top Control | 0 */2 * * * * | ./console cron shuffle -q |
+---+----------------------------------+----------------+------------------------------+
I would expect the "number" column to be incremented by one for each row.
@lavary I have a couple tasks that are slightly different and can be simplified into a generic task.
All I would need is someway to pass in arguments through something like $argv, through the schedule:run command to the defined Tasks.php files.
Is there already available, or possible?
Thanks! ๐
I have the following task
$schedule->run('/var/www/xxxx/bin/console.php cron:import-listings') ->cron('59 * * * *') ->appendOutputTo('/var/log/xxxx.log') ->preventOverlapping();
I keep changing the minute to see if it works but I only see No task is due when time matches the cron value. Am I missing something?
It would be great to have crunz as a self-contained .phar file (like Composer).
Primarily, it would offer a solution for those with conflicting shared project dependencies (e.g. #33)
Hi
I ran the code using ssh in my server.
/usr/local/bin/php /home/souvenir/public_html/new/cron2/vendor/lavary/crunz/crunz schedule:run
But i got error saying "Invalid type for path "crunz.smtp". Expected array, but got strings"
My smtp set up is
smtp:
host:mail.domain.com
port:465
username:*****
password:admin1234
encryption:SSL/TLS
Is there anyone who faced this issue?
Thank you
Hi,
I was wondering if there's a way to get the next execution time for a Task.
Thanks in advance,
Alejandro
Hi!
I have an existing application using symfony/console.
Will crunz works if I add all commands defined in Console/CommandKernel
in my own console declaration? I think it'll works but I prefer to ask before digging the doc :)
Could you address exception handling in the readme?
Hi,
I was using traditional cronjobs with a MAILTO variable and some other args to receive mails only when my scripts output something (i.e. not empty).
I switched to crunz and tried to reproduce the same thing. Unfortunately, I can't. I receive emails for every cronjob even if the output of the scripts is empty. I think crunz should only send an output (when we activate them in the conf file) if there is something to send. If it's empty, nothing should be mailed.
Am I missing something?
Regards
Here is my code:
use Crunz\Schedule;
$schedule = new Schedule();
$schedule->run('date')
->everyMinute()
->sendOutputTo('/tmp/test')
->description('test');
return $schedule;
and my /etc/crontab:
* * * * * root /var/www/shield/vender/bin/crunz schedule:run
All my Schedules work fine.
But,When I try to user sendOutputTo(),I get no output in /tmp/test.
It works if I redirect output to file in /etc/crontab:
* * * * * root /var/www/shield/vender/bin/crunz schedule:run >> /tmp/test
So.
How can I send output of each job to individual file.
Thank you.
Hi there!
Thanks for this awesome library!
I want to use Crunz in CMF with multiple directories for scheduled events files (app, core and some modules). These directories are detected dynamically and can not be set via cli argument or yml config. As I understood doc and the code correctly, it's not possible to configure Crunz to use custom files finder. So my suggestion is to implement special class which would handle files detecting/loading and use it instead of collectTaskFiles method (and it's clones in other files). But I don't see any way to inject this file into crunz console app (maybe create namespace for these loaders, set loader codename in config and search loader class in namespace by specified codename). I may make PR for this but I want to hear your opinion for this issue first.
use Crunz\Schedule;
$schedule = new Schedule();
$schedule->run(function() {
});
return $schedule;
When I run a schedule command that's a closure function, I get
crunz.ERROR: [] []
outputted to my error log.
Not a big issue, but annoying to fill up my crunz error log with this? Any idea what's happening?
Hi,
I am trying to install the using composer - composer.phar require lavary/crunz
I am getting the following error:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Can only install one of: lavary/crunz[v1.4.8, dev-master].
- Can only install one of: lavary/crunz[v1.4.8, dev-master].
- Installation request for lavary/crunz ^1.4.8 -> satisfiable by lavary/crunz[v1.4.8].
- Installation request for lavary/crunz dev-master -> satisfiable by lavary/crunz[dev-master].
Any idea what can be the fix?
Thanks!
It turns out that the crunz package is not compatible with https://github.com/theiconic/php-ga-measurement-protocol due to a limitation in the dependant libraries.
preventOverlapping is not work since commit cabc7a0 (Create an event runner with closure call support )
Event::lock() newer called and have incorrect code: undefined variable $event
invalid
What is the best way to use another root directory for crunz? I rather not have my task nor configuration file in the composer/ directory.
I know it is possible for the schedule:run
and schedule:list
We can explicitly set the source path by passing it to the event runner as a parameter
But this applies only to finding the tasks? It still seems to require config file in composer/.
An optional --rootdirectory option to "crunz" would be great.
In the current setup debugging is hard as there is no way to test discrete cronjobs for if they perform well without sending them to the crontab.
Would be nice to have the following additional options for the command schedule:run
would make implementing && testing much more fun
The method Crunz\Schedule::run
creates and returns an Illuminate\Console\Scheduling\Event
object, but the illuminate/console package is not required.
Is that correct?
I have implemented Crunz. I've created an Event
with a Closure
that initially used Doctrine's EntityManager to remove some sort of entity that was older than 24hours. That did not seem to work because the events where serialised by some library called SuperSerialise
. Anything Doctrine related and serialisation do not play well.
I've moved the Closure
to a separate function in the same Task
file. The system is able to successfully execute the command, but the output is this;
[user@some-server:~/some-directory$ /usr/local/php7/bin/php vendor/bin/crunz schedule:run
sh: 1: Removed: not found
The function will output the amount of entries removed, see this example:
function executeCronjob($parameters)
{
try {
// php-code here
return 'Removed ' . $tokenCount . ' tokens';
} catch (\Exception $exception) {
return $exception->getMessage();
}
}
Should I use return
or echo
for the output of the function?
Edit; nvm using echo
resolved my issue.
The onError
function is nice. But it would be nice if we could catch / output exceptions in this function so we can log this somewhere or do anything else with them.
Also the ways we can log is way to restricted at this point. I see you use Monolog
/ LoggerInterface
implementation. Perhaps we can make it so the developer can set any logger that implemented the LoggerInterface
interface through the config / constructor of his Schedule
/ Event
object?
@lavary On the Ubuntu server, when I go into the vendor/bin directory and execute "crunz list", I prompt "crunz: command not found". What should I do? Thank you
Hi guys,
do we have the ability to delte or pause a specific task by id throught command?
e.g.
crunz tasks remove 1
crunz tasks pause 2
crunz tasks resume 1
at the moment, we can't delete the task from the list, can we?
This error occurs when using on method in 'Running Events at Certain Times'
/**
* Position of cron fields
*
* @var array
*/
protected $fieldsPosition = [
'minute' => 1,
'hour' => 2,
'day' => 3,
'month' => 4,
'week' => 5,
];
/**
* Schedule the event to run on a certain date
*
* @param string $date
*
* @return $this
*/
public function on($date)
{
$date = date_parse($date);
$segments = array_only($date, array_flip($this->fieldsPosition));
if ($date['year']) {
$this->skip(function () use ($segments) {
return (int) date('Y') != $segments['year'];
});
}
foreach ($segments as $key => $value) {
if ($value != false) {
$this->spliceIntoPosition($this->fieldsPosition[$key], (int) $value);
}
}
return $this;
}
Apparently missing the position for the year in the attribute 'fieldsPosition'.
Exit with exception 'ErrorException' with message 'posix_getsid() expects parameter 1 to be long, string given' in vendor/lavary/crunz/src/Event.php:250
Hello. It looks like this package got abandoned and there is nobody looking into issues and pull requests.
@lavary would mind giving another person write access to this repository if somebody is willing to take responsibility for this repository?
When I run this on my ubuntu box I get the following error
PHP Fatal error: Class 'Crunz\console\Commands\ScheduleRunCommand' not found in /var/www/xxxx/vendor/lavary/crunz/src/Console/CommandKernel.php on line 31 PHP Stack trace: PHP 1. {main}() /var/www/xxxx/vendor/lavary/crunz/crunz:0 PHP 2. Crunz\Console\CommandKernel->__construct() /var/www/xxxx/vendor/lavary/crunz/crunz:37
Can it be because of small 'c' on 'console'
https://github.com/lavary/crunz/blob/master/src/Event.php looks very much like a old version of Laravel Scheduling https://github.com/laravel/framework/blob/5.0/src/Illuminate/Console/Scheduling/Event.php
cmd: vendor/bin/crunz make:task demo1 --run demo1.php --in /var/www/html/crunz/tests
exception:
PHP Notice: Undefined variable: input in /var/www/html/crunz/src/Console/Command/TaskGeneratorCommand.php on line 118
PHP Notice: Undefined variable: output in /var/www/html/crunz/src/Console/Command/TaskGeneratorCommand.php on line 118
PHP Catchable fatal error: Argument 1 passed to Symfony\Component\Console\Helper\QuestionHelper::ask() must implement interface Symfony\Component\Console\Input\InputInterface, null given, called in /var/www/html/crunz/src/Console/Command/TaskGeneratorCommand.php on line 118 and defined in /var/www/html/crunz/vendor/symfony/console/Helper/QuestionHelper.php on line 45
Hi,
I have the following configuration options
log_output: true
output_log_file: app/logs/tasks/general.log
and a task:
$schedule->run('php app/console xxxx')
->everyOneMinutes()
->description('xxxx')
->sendOutputTo('app/logs/tasks/xxx.log');
I would expect the output for this file to be logged to xxx.log, but instead it's logged to general.log.
Same effect when I use appendOutputTo.
Am I missing something?
In the buildCommand function of Events.php, the change directory instruction is concatenated to rest of the command using a semi colon. This does not work under Windows. Commands can be joined with an ampersand.
A possible fix is to replace
$command .= 'cd ' . $this->cwd . ' & ';
with
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
## Windows
$command .= 'cd ' . $this->cwd . ' & ';
} else {
## Not Windows
$command .= 'cd ' . $this->cwd . '; ';
}
You depend on the exact version 1.19.0 of monolog/monolog, instead of something like ^1.19
Is there any reason for that? It makes it impossible to get a newer version of the package while dependening on lavary/crunz.
On line https://github.com/lavary/crunz/blob/master/src/Event.php#L200 there is a call to $this->sudo()
, but the definition at https://github.com/lavary/crunz/blob/master/src/Event.php#L222-L225 is protected function sudo($user)
with the $user
parameter being used.
Also, on https://github.com/lavary/crunz/blob/master/src/Event.php#L207 the call to sudo() is not appended to the $command
, so nothing will happen with the returned value.
I believe that sudo()
should use $this->user
as the value and that https://github.com/lavary/crunz/blob/master/src/Event.php#L207 should append it to $command
Currently i have symfony project with symfony version 2.8.x - when trying to install crunz, it rejected because some of the dependecies is for Symfony >= 3.0 like symfony/yaml
, symfony/finder
, and symfony/process
. Is there any plan for downgrade the lib versions, so it can be use for symfony < 3.0 ?
I'm getting an error when trying to test my first task from the Windows command line. I'm still working on getting my head wrapped around Crunz, so this may very well be a silly mistake on my part.
Here's my task code.
use Crunz\Schedule;
$schedule = new Schedule();
$schedule->run( function() {
echo 'Howdy';
} )
->description( 'Test task' )
->everyMinute();
return $schedule;
The error I'm getting is
crunz.ERROR: 'c:\path\to\vendor\lavary\crunz\src/../crunz' is not recognized as an internal or external commad, operable program or batch file
It only does this when I'm trying to use a closure. If I enter a command like dir
it works perfectly.
schedule:list
works and shows object(Closure)
as the task to run.
I've tried running the crunz.bat
file from the folder it's in and also from the project root with the path in front. I've also tried running php crunz schedule:run
from within the lavary/crunz folder, and that didn't work either.
Hi,
I really like your library, it is super useful. I just wonder what is the reason for this library to require PHP 5.5? We have quite old server software and we can't upgrade to newer PHP version at the moment (only has PHP5.3). Thank you.
After running vendor/bin/crunz schedule:list
I have the following, but the cron log is always saying: No event is due!
+-----+---------------------------------------+-----------------+----------------------------------------------------------------------+
| # | Task | Expression | Command to Run |
+-----+---------------------------------------+-----------------+----------------------------------------------------------------------+
| 1 | XXXXXX | 30 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 8190 |
| 2 | XXXXXX | 30 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 8678 |
| 3 | XXXXXX | * 23 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 237 |
| 4 | XXXXXX | 30 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 3758 |
| 5 | XXXXXX | 30 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 7024 |
| 6 | XXXXXX | 30 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 8186 |
| 7 | XXXXXX | 30 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 8686 |
| 8 | XXXXXX | 30 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 9146 |
| 9 | XXXXXX | * 2 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 9305 |
| 10 | XXXXXX | 30 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 8191 |
| 11 | XXXXXX | * 5 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 3272 |
| 12 | XXXXXX | * 23 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 3901 |
| 13 | XXXXXX | * 23 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 243 |
| 14 | XXXXXX | * 21 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 6966 |
| 15 | XXXXXX | * 23 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 5278 |
| 16 | XXXXXX | * 12 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 9059 |
| 17 | XXXXXX | * 4 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 3259 |
| 18 | XXXXXX | * 20 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 5106 |
| 19 | XXXXXX | 30 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 8179 |
| 20 | XXXXXX | 30 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 8687 |
| 21 | XXXXXX | * 14 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run1 3371 |
| 22 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 12.90_77.60 |
| 23 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 18.95_72.80 |
| 24 | YYYYYYY | 30 22 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 35.10_-117.90 |
| 25 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 13.05_77.60 |
| 26 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 28.65_77.20 |
| 27 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 25.20_75.85 |
| 28 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 13.10_77.55 |
| 29 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 20.00_77.00 |
| 30 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 10.00_76.40 |
| 31 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 12.95_77.55 |
| 32 | YYYYYYY | 30 1 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 -36.90_174.80 |
| 33 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 12.90_77.55 |
| 34 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 10.00_76.30 |
| 35 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 13.00_77.55 |
| 36 | YYYYYYY | 30 4 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 -27.40_153.05 |
| 37 | YYYYYYY | 30 22 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 37.35_-122.10 |
| 38 | YYYYYYY | 30 22 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 37.40_-122.10 |
| 39 | YYYYYYY | 30 22 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 34.10_-118.30 |
| 40 | YYYYYYY | 30 20 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 17.20_-88.90 |
| 41 | YYYYYYY | 30 20 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 17.25_-88.70 |
| 42 | YYYYYYY | 30 22 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 36.20_-115.10 |
| 43 | YYYYYYY | 30 11 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 0.40_33.20 |
| 44 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 10.00_76.35 |
| 45 | YYYYYYY | 30 3 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 -33.90_150.75 |
| 46 | YYYYYYY | 30 19 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 40.70_-74.00 |
| 47 | YYYYYYY | 30 1 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 -36.70_174.80 |
| 48 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 28.70_77.20 |
| 49 | YYYYYYY | * 9 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 12.30_76.55 |
| 50 | YYYYYYY | 30 13 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run2 47.50_19.00 |
| 51 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 12.90_77.60 |
| 52 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 18.95_72.80 |
| 53 | ZZZZZZ | * 22 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 35.10_-117.90 |
| 54 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 13.05_77.60 |
| 55 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 28.65_77.20 |
| 56 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 25.20_75.85 |
| 57 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 13.10_77.55 |
| 58 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 20.00_77.00 |
| 59 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 10.00_76.40 |
| 60 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 12.95_77.55 |
| 61 | ZZZZZZ | * 1 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 -36.90_174.80 |
| 62 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 12.90_77.55 |
| 63 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 10.00_76.30 |
| 64 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 13.00_77.55 |
| 65 | ZZZZZZ | * 4 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 -27.40_153.05 |
| 66 | ZZZZZZ | * 22 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 37.35_-122.10 |
| 67 | ZZZZZZ | * 22 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 37.40_-122.10 |
| 68 | ZZZZZZ | * 22 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 34.10_-118.30 |
| 69 | ZZZZZZ | * 20 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 17.20_-88.90 |
| 70 | ZZZZZZ | * 20 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 17.25_-88.70 |
| 71 | ZZZZZZ | * 22 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 36.20_-115.10 |
| 72 | ZZZZZZ | * 11 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 0.40_33.20 |
| 73 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 10.00_76.35 |
| 74 | ZZZZZZ | * 3 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 -33.90_150.75 |
| 75 | ZZZZZZ | * 19 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 40.70_-74.00 |
| 76 | ZZZZZZ | * 1 16 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 -36.70_174.80 |
| 77 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 28.70_77.20 |
| 78 | ZZZZZZ | 30 8 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 12.30_76.55 |
| 79 | ZZZZZZ | * 13 15 11 * * | /usr/bin/php /home/sample/jobs/runner.php run3 47.50_19.00 |
+-----+---------------------------------------+-----------------+----------------------------------------------------------------------+
I used a test task to run every minute, every 2 minutes and so on, they seem to be working but all these crons are not working, getting same value as "No event is due! "
I haven't used this yet, but could you tell me why illuminate/support is a dependency? I didn't see where you used this library.
Hi.
On a server running FreeBSD I got an error "Ambiguous output redirect."
Because structure "2>&1" is not working with shell csh
I propose to to make check OS in Event class, method buildCommand and fix command.
$command = $this->command . $redirect . $this->output;
$command .= (stristr(strtolower(PHP_OS), 'bsd')) ? ' &' : ' 2>&1 &';
Aloha! I created a similar package for my company (which we use in production hundreds of times a day), and recently posted it to github. I had intended to expand and clean it up.
We seem to be trying to solve a lot of the same problems, and each have features the other package doesn't. Would it be worth looking through my library and collaborating? I'd be happy to merge my work over to your library where appropriate.
My package is at https://github.com/chrismichaels84/mistletoe. It is fully PSR compliant, well tested, and build on SOLID principles.
Some features include:
Some things it may have to offer are:
Just a thought.
Hi,
Here is the situation, usually we have several different environment(such as production/local development), that means the config is different to each env(such as log file location and some settings).
Just had a quick looking up in the source code and found out that, I can specify ENV parameter - CRUNZ_BASE_DIR, which will be checked when loading the configuration file(crunz.yml).
But, CRUNZ_BASE_DIR has to be set in the php code, which is not handy, as I have to write another initializing file which only set CRUNZ_BASE_DIR based on the env and inject it to the crunz running context. For now, the only way is modify the source code, or I have to write a "wrapper" launcher.
So, is it possible to support something like this:
path/to/vendor/bin/crunz schedule:run --conf path/to/crunz.yml
Let me know if I missed something.
Thanks!
Hello,
just a feature request:
do you mind to add the following stats functions:
Can I make a CakePHP plugin using this library?
I get a error when the cron is running:
PHP Parse error: syntax error, unexpected 'list' (T_LIST) in:
vendor/symfony/config/Definition/ArrayNode.php
It looks like PHP >= 5.5.0 is required.
I have a Debian server running Plesk. When i create a new cron i can select "Run a command" Or "Run a PHP script". For a PHP script i can select a PHP version (default is 5.4).
I can't select a version for "Run a command". How can i force crunz to use PHP 5.6. Or can i start the script bij a php script?
I used crunz with a php script of sending email ("yiic emailSpool loop" http://cornernote.github.io/yii-email-module). In this script, it'll fetch spooled email (e.g 10 emails) from db and send them, then sleep 1 second, then next 10 emails,...
The problem is the schedule:run
used very high CPU load
Pls look at process 84672
I did try to run yiic emailSpool loop
without crunz
#yiic emailSpool loop &
and it only takes 0.1% cpu (the same result if i put this script to crontab -e
)
Actually there isn't many emails to send, most of the time this script hit db get 0 spooled emails, sleep, hit db, 0 emails, sleep, ... but the server is always around 90-100% CPU load
I've started to play with this project, and the first stopper that I find is that it doesn't seem to properly detect the project root.
When I run any CLI command, it thinks the project root is inside vendor/lavary. That makes, for example the command make:task to create the file in vendor/lavary/tasks/fooTask.php, instead of tasks/fooTask.php
The same happens with the crunz.yaml config file. If I set something in the copy inside the project root, it doesn't take effect. However, it does If I change the file vendor/lavary/crunz.yml (which I think it has been created after running the publish:config command)
I'm running the commands from the project root, with vendor/bin/crunz make:task
, but it seems to do the same if you change current dir to vendor/bin and run crunz make:task
.
Also, the all commands throw lots of warnings until you create the crunz.yml file, because it is not able to open it.
PHP Warning: file_get_contents(/home/user/crunz_test/vendor/lavary/crunz/src/Configuration/../crunz.yml): failed to open stream: No such file or directory in /home/user/crunz_test/vendor/lavary/crunz/src/Configuration/Configuration.php on line 62
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.