GithubHelp home page GithubHelp logo

crunz's People

Contributors

andrewmy avatar arthurbarros avatar aviduda avatar codermarcel avatar davidsneighbour avatar digilist avatar drjayvee avatar ecofishrcr avatar erfan723 avatar falldi avatar hashnz avatar iluuu1994 avatar jhoughtelin avatar lavary avatar m-hume avatar mareksuscak avatar marklittlewood avatar mindcreations avatar pablokowalczyk avatar philetaylor avatar radarhere avatar sadeghpm avatar simmonspaul avatar timurbakarov avatar vinkla avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crunz's Issues

Change config from code

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?

appendOutputTo

I nice to have would be to include the current timestamp when adding Log Output to a file.

Enumeration of tasks

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.

No task is due

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?

SMTP setup does not work correctly

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

Task next execution time?

Hi,
I was wondering if there's a way to get the next execution time for a Task.
Thanks in advance,

Alejandro

Integration with existing Symfony Console

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 :)

Crunz sends output email even if the output is empty

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

Neither appendOutputTo() or sendOutputTo() works

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.

Custom files finder / initialization strategy

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.

Schedule closure function outputs empty crunz.ERROR

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?

Unable to install

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!

preventOverlapping is not work

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

Using another root directory for everything

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.

Debugging

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

  • Task --> to indicate which task number from schedule:list is to be run now
  • Force --> force run the task immediately and don't match a specific timespot

would make implementing && testing much more fun

Missing dependency on illuminate/console

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?

Using function output?

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.

onError function

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?

delete,pause task from scheduler list by id

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?

Undefined index: year in vendor/lavary/crunz/src/Event.php on line 370

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'.

posix_getsid error

Exit with exception 'ErrorException' with message 'posix_getsid() expects parameter 1 to be long, string given' in vendor/lavary/crunz/src/Event.php:250

New package maintainer

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?

Class not found error

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'

Undefined variable: input TaskGeneratorCommand.php on line 118

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

appendOutput to different file

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?

Problem with ->in(dirname) on Windows

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 . '; ';
}

Why is the dependency on monolog so restrictive?

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.

Event:sudo is not correct

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

Symfony Version >= 2.7 and < 3.0 support

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 ?

Closure on Windows - not recognized command

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.

Supported for PHP 5.3

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.

Always getting "No event is due! "

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! "

Problems with Freebsd

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 &';

Similar package. Collaborate?

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:

  • Simplify ALL cronjobs into a single job
  • Environment detection and limiting (only run certain tasks in production)
  • Tasks may be console commands, classes, or callables
  • Fluent cron schedule builder
  • An included TaskRunner
  • Easy to create custom task runners
  • A working phar

Some things it may have to offer are:

  • Transforming cron expressions into natural language expressions
  • Creating TaskRunners
  • Run tasks in sequence (one followed by two followed by three)
  • Environment detection so you can run some on production and other on development

Just a thought.

Specify the config file in the command line

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!

Job stats and management

Hello,
just a feature request:
do you mind to add the following stats functions:

  1. what job will be run next
  2. what jobs have been running now
  3. what job has finished last
  4. detect the job error level (bool error/success or unix int 0=success or >0=error code)
  5. job naming to ease the management

Force php version

I get a error when the cron is running:

  • * * * * /vendor/bin/crunz schedule:run

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?

High CPU usage

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

screen shot 2017-07-26 at 3 29 11 pm
screen shot 2017-07-26 at 3 30 04 pm

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

Doesn't seem to detect the directory root

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.