Code Monkey home page Code Monkey logo

cronical's People

Contributors

jtagcat avatar mgefvert 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cronical's Issues

Asynchronous shutdown of services

When multiple services are terminated, they should be shut down in parallell - otherwise we may end up waiting up to 30 seconds per service. In the case of several services this may take a while and possibly impact job processing.

Support for installing multiple services

Today it looks like it is not possible to install multiple instances of the service with different configurations.

Related to #1, if we can change service name, perhaps there could be another option to point to a different config file to install another instance:

cronical --install --conf="second.dat" --name=second --desc="My second instance"

While you could add more lines to cronical.dat, there may be cases where you want to group things together for different apps, emailing to another account on errors etc.

Spaced Paths Have No Support

I'm trying to have a job that runs a certain bash script every day, and because the bash program itself is in the Program Files directory, I cannot access it. Here's what I've tried:

@daily C:\Program Files\Git\bin\bash.exe -c /c/Path/to/my/script.sh

This throws: WARN [4] File C:\Program does not seem to exist

So, I tried quotes, which usually works with spaced paths in programming, as can be seen below:

@daily C:\"Program Files"\Git\bin\bash.exe -c /c/Path/to/my/script.sh

And, this throws: ERR ArgumentException: Illegal characters in path.

Because that didn't work, I tried single quotes, but that didn't work, and neither did backticks, and you get the idea. It seems that there's no way to access spaced paths like Program Files with Cronical.

ApplicationException: Could not connect to service control manager.

I've copied the Cronical.exe, exe.config and .dta to my project folder and adjusted the .dat file to run my service. Whenever I run Cronical.exe --install now, I get the error ApplicationException: Could not connect to service control manager.. Am I missing a step?

Encoding of emails

Cronical sends email when the script outputs some text.
My script outputs UTF-8 encoded text, but in the email sent from cronical it gets garbled with the typical multi-character nonsense output as often happens if a program expects another encoding. Looks like ironical treats the output from the script as ISO-8859-1 or similar. Example of broken chars:

Ø  -->  Ø
æ  -->  æ

Have you noticed this? You can probably reproduce with a simple echo æøåÆØÅ command, which should then generate an email with those same (Norwegian) characters.

Where are cronical instances stored?

Related: #2 #18
I'm attempting to package Cronical with Scoop. For uninstallation, services would need to be removed with cronical.exe --remove --service-name foo. Where could I find a list of Cronical services?

Enable custom service name and description

Hi, thanks for a great product.

It would be useful if we could specify service name and service description to show up in the services list. This could be two settings in cronical.dat, and also overridable on command line:

cronical --install --name=myname --desc="My description"

Open .dat file from cli

Add parameter -e, what is basically the equivalent of start %location%\cronical.dat from cmd.

Tag a release

This is a (meta) feature request.

We would like to package and distribute this software, but it would be easier to maintain if the source is versioned, so that we can refer to the exact binary. Any version would work.

Allow comments after each cron line

Would be nice if cronical allowed comments in cron lines, such as

0 * * * * mycommand       # This is for bla bla
5 * * * * otherCommand    # Comments should be stripped

I tried it but the comments are sent as arguments to the command :) Not sure if the # character is useful in any windows commands, but for safety perhaps allow \# in commands to insert a literal hash?

Btw: I love your program and use it with a customer. A pity that it seems to be a little known piece of software.

Configurable wait time between services

There should be a configuration option that allows you to specify how much time may pass between a service disappears and it is restarted. From 0-300 seconds or something like that.

Does LogPath work?

LogPath seems to be implemented in two different areas - one in the configuration file and one in the application config (.exe.config).

  • Investigate which one is right.
  • Clarify documentation.
  • If the LogPath in the cronical.dat file is unnecessary, maybe we can change the config reader to not be event driven.

Implement command-line client

Implement a command-line client that can modify the behavior of cronical at runtime.

Examples:

  • Schedule a job for immediate execution
  • Schedule a job for continual execution
  • Start a service
  • Query the status of a service
  • Stop a service

How to implement this best? We don't want to change the user's cron.dat file automatically, so perhaps a different file could be used, e.g. cron.user or similar, that cronical could maintain?

Read jobs from MySQL database?

Would it perhaps be possible to load a list of jobs from a MySQL database? And what form would that take?

There are several types of possible jobs.

  • Load a list of regular cron job definitions.
  • Load a list of timed jobs, like "run this job at a particular time"
  • Load a list of services to monitor.
  • Load a list of jobs to process (run these 2000 jobs as quickly as you can, using 5 worker threads)

The job result should be posted in the table or moved to an archive table of sorts, optionally along with a result (output). This would be a major enhancement that would enable websites to process jobs on-the-fly, either in a fire-and-forget fashion or waiting on jobs to be performed ... although MySQL is not completely encouraged to be used as a job queue.

Bug in */n format?

I tried a crontab with

*/2  7-18  * * 1-5      python foo.py

But it did not kick off, even if I waited long (on a wednesday at 13:00)
Changed the spec to every minute, and it worked.

Custom SMTP port

SMTP Server: smtp.migadu.com
Port: 587
Connection Security: STARTTLS


Cronical is trying to connect to port 25.

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.