← Back to EasyCron.com

Jun 13, 2017

Datacenter hardware maintenance

Our dedicated servers provider OVH (ovh.com) has sent us an alert about a hardware (electrical reboot) replacement that will happen on June 14, at 6:00AM EDT and last about 1 to 1.5 hour:

This hardware replacement will affect one of our core servers which is relied by our other servers to perform EasyCron's service.

As a result, during the intervention, our service will be interrupted. And the service will recover automatically once the maintenance is finished and the server is booted again.

From information we got, the replacement of electric part could do no impact to the server:
or cause a variable length of downtime (from dozen of minutes to 1 hour):

There is nothing we can do now to 100% avoid this service interrupt. But we're working on a solution to have our HA (high availability) strategy cover this server, so that in the future if similar maintenance happen again, our service will not be affected.

As a remedy, EasyCron will fire those cron jobs that have missed executions during the maintenance for *one* time after the service back to normal. That means, your affected cron jobs will get triggered for one time after our server is up again.

We're really sorry for the inconvenience that will be caused by this server maintenance.


Our server's downtime started from
June 14th, 6:39 AM EDT, and ended on
June 14th, 7:14 AM EDT, totally lasted
35 minutes.
Our service fully backed to normal at
June 14th, 7:20 AM EDT.

May 23, 2017

Custom cron job timeout

Today we added a new feature to EasyCron - customizing cron job timeout.

In our previous cron job executing program, we always used your plan's default timeout as timeout limit. But in a few situations, you may want to change the timeout setting.

For example, if you don't want your cron job to run overlappingly, instead of setting max execution time in your script, you could also set the timeout limit at EasyCron. Once the configured timeout is reached, EasyCron will disconnect the connection between itself and your server, and your cron job script could detect the client side abortion and terminate the execution, so next execution could come without conflicting with previous execution(s).

Another possible use case for custom timeout is, if you know the legitimate maximum execution time of your cron job script/program, you may want to restrict the execution to a specific duration, so that any unexpected long time execution will be cancelled then.

Other uses include but not limit to, if you're going to use EasyCron as a monitoring service, you could set a deadline to the max response time cost; preventing proxy timeout, etc..

Custom cron job timeout

We hope that you could find this new feature useful.

May 21, 2017

Email notification optimization

As too many emails sending out from EasyCron has resulted in some problems, we has reduced the amount of email notices by changing the email notice triggering mechanism.

The main problems caused by frequently emailing are:

1) Many email service providers deem us as SPAM sender, block our emails (or/and IPs) constantly. This has brought big trouble to EasyCron and our users. For example, many expired users could not receive expiry email notices and didn't renew their accounts on time; some crucial cron jobs failed but didn't receive attention, and so on.

2) Some users' email box were filled up by emails sent by us.

3) The credit and authority of our domain and IPs descends as black listing done by other parties.

4) Our email server keeps being hit by huge amount of bounced emails from recipients.

Now EasyCron sends out email notices only when:

1) starts failing, or

2) returns to success from failure.

That is to say, if your cron job fails consecutively for more than one time, only one failure email notice will be sent to you.

You could also specify a "sensitivity" setting to configure only after how many consecutive failures that the failure notice will get sent.

Email notification and failure threshold

If in some cases, you really need to be notified for each failure or execution of your cron job, you could utilize the "webhook" feature.

May 13, 2017

Placeholders you could use in cron job URL

EasyCron added placeholder support in cron job URL today.

You could use placeholders:
in your cron job URL.

__RANDOM__ will be replaced with a random 12-digit integer when your cron job is fired.
And __TIMESTAMP__ will be replaced with unix timestamp.

For example, URL
could finally be http://www.example.com?123456789000 when it's fired.

Random integer or timestamp in URL will prevent EasyCron's requests from hitting cache in your proxy or server.

Mar 28, 2017

EasyCron now supports sending webhook requests after cron job executions

Making a webhook request after cron job execution could be useful for notification or chaining other actions together after a cron job script/program does its work.

From now on, EasyCron starts supporting webhook request after cron job execution. Along the request, users can choose to send all or some of the following fields:

  • Cron Job ID (will be received in your webhook script as parameter "cron_job_id")
  • Cron Job Name (as parameter "cron_job_name")
  • Cron Job URL (as parameter "cron_job_url")
  • Cron Job Execution Status (as parameter "cron_job_execution_status". "Success" or "Failure")
  • Cron Job Execution Error (as parameter "cron_job_execution_error". Will be empty when execution succeeds)

Configure webhook request after executions of your cron job

You could also choose a HTTP method to make the request from GET, POST, HEAD, PUT, PATCH, DELETE, CONNECT, OPTIONS and TRACE.

As everybody knows, email and maybe a few other contact methods (SMS, Push message, etc.) are not very dependable ways for notification. By using the webhook mechanism, users can do a more reliable notification in their webhook target script (Even sending emails to themselves from their own email address has higher arrival rate). And more than this, users can actually do almost anything in the webhook script. This could greatly extend the post-execution functionality of EasyCron.

Welcome to share how the webhook feature help you and simplify your work in the comments.

Jan 21, 2017

Goodbye "Engine". Welcome "Execution Per Day (EPD)".

Goodbye "Engine". Welcome "Execution Per Day (EPD)".

Since early 2014, we had been using "Engine" as our resource indicator representing cron job resource occupation. Today, we took it out from our system and replaced it with a new indicator "Execution Per Day (EPD)".

"Engine" is an abstract concept. There is no counterpart in real world that can be converted to it easily. Therefore, it has caused much confusion to our users, and consequently, much effort of ours to explain this concept to our users.

Quite differently, "Execution Per Day (EPD)" is natively intelligible. Beyond doubt, it's a life saver for EasyCron users and us :)

Actually, "Engine" has a simple calculation formula:
Engines = ceil (execution times per year / 1000)

And EPD got this one:
EPDs = execution times per day

There's not much difference? Right?

Jan 8, 2017

Customize your HTTP method and headers for your cron job requests

Happy New Year!

EasyCron used to have a "posts" and "cookies" field in the cron job settings which are for posting content and setting cookies for the HTTP requests sent to your server.

Now, in order to follow the HTTP standards and conventions, we've added a new feature - HTTP method and header customization - to our cron job setting.

As a result, the previous existing "posts" field is integrated with POST, PUT and PATCH method. And the previous existing "cookies" field will retire at 6:00 AM UTC, on Jan 14, 2017.

From now on, you can simply customize the HTTP method (from GET, POST, HEAD, PUT, PATCH, DELETE, CONNECT, OPTIONS and TRACE) and headers for your cron job requests at:

Customize HTTP method and headers for your cron job requests

If you have any longing feature that you want to have in EasyCron, please send us a message at our message page. We will always listen to our users at the first place.