Sunday, March 20, 2016

SetCronJob now supports RubyID

To prevent the continuing service abusing, SetCronJob now only offers a very limited trial account with 24 daily executions in 5 days. To fully tested our service, you can just connect your account to a RubyID account, and we'll upgrade your account to trial Gold account with 7,200 daily executions in 15 days for free.

This applies to new accounts and existing account that still in trial period only. All other existing account will be added $1 bonus to your account balance when connecting to a RubyID account. The bonus credit will be used when you upgrade/renew your account.

RubyID requires users to add and verify their phone number before they can connect to SetCronJob. You can create a RubyID account here.

 If you need any help, please feel free to email me.

Monday, March 14, 2016

HostGator blocked our IP addresses

UPDATED on Mar 27, 2016: Well, 4 out of 5 new servers have been blocked by HostGator again. That is it. SetCronJob now stops supporting HostGator users. If your website is hosted at HostGator, you should either move to other hosting providers, or use other online cronjob services. You can always request a refund of your payment at Billing > Payments.

UPDATED on Mar 26, 2016: We added 5 new servers and moved all blocked cronjobs there. They're all working fine now. Our 3 old IP addresses are also unblocked.

SetCronJob's IP addresses have been being blocked by HostGator's firewall for days. If your sites are hosted at HostGator, you can see this error message
Access denied.  Your IP address is blacklisted.  If you feel this is in error please contact your hosting provider's abuse department.
in cronjobs' execution results.

A client has confirmed that HostGator blocked us because we exceeded their PHP request rate limit. And they won't unblock until the requests stop.

So, currently we'll disable all cronjobs for sites hosted at HostGator. I'll update when they unblock our IP addresses.

To prevent this from happening again, please lower your cronjob's execution interval, especially when your websites are hosted at shared hosting providers. Most cronjobs don't require cronjob every minute to work. You can set it to run every 10 minutes instead, or contact me for advice.

You should also contact HostGator and ask them if they can whitelist our IP addresses:
We also consider adding more servers / IP addresses later to spread the load.

Tuesday, February 2, 2016

SetCronJob is high availability now!

After 3 servers are added, there were several issues that caused SetCronJob unstable. We were working really hard to fix, improve and upgrade our servers and application.

The service is stabilized after a few days, and we're still monitoring and working on it. Until now, we can proudly announce that SetCronJob is high availability. We removed all single point of failure, including:
- Web server: we're using round robin DNS, so if one web server is down, your browser will retry the request at another server. There will be some delay time (e.g. 30 seconds, tested on my browser), but it's not a big problem. As long as you can access our website, and the cronjobs are executed properly, it's no big deal.
- Cronjob processor: all cronjobs are distributed to all servers to be processed. If one server is down, the other cronjob processor can still handle all the cronjobs properly. Actually just one server is powerful enough to handle all cronjobs. Network failure is automatically detected, so any server has any network problem, it'll be temporarily removed until everything is fine and it can process cronjob properly again.
- Database server: we have synchronous database replication, automatic failure detection and failover, load balancer. No more database down!

With this set up, SetCronJob is now the most reliable online cronjob service. We're processing 3.8 millions cronjobs a day, or 2,600 cronjobs per minute, or 44 cronjobs per second. And the service is already scaled up and out so that it can handle up to x3 times than those numbers :-)

Happy setting up cronjobs!

Sunday, January 17, 2016

SetCronJob stops offering new free accounts

Hi all,

The free account offer has been being there since SetCronJob started in 2009, and it's finally time for us to kiss it goodbye. Starting at Jan 18, 2016, we'll no longer offer free account for new users.

All existing free users can continue using their accounts until Jan 18, 2017. After that we'll remove the free plan completely.

UPDATED on Mar 20, 2016: To prevent abusing, when you sign up now, you'll get a limited trial Gold account with 24 daily executions limit, in 5 days only.
When you connect your account with a RubyID account, your trial account will be upgraded to full trial Gold account, with 7200 daily executions limit, in 15 days, for free. You need to add and verify your phone number at RubyID before you can connect to SetCronJob.
To connect, log in to your SetCronJob account, visit Account > Social accounts, click on RubyID icon.

If you need any help, or have any question, please feel free to email me.

Best regards,
Nguyen An Thuan.

Saturday, January 16, 2016

3 new servers are being deployed

Hi all,

We're very pleased to announce that 3 new servers are being deployed to achieve High Availability. With this deployment, we can minimize service downtime. When one or even two servers fail, the others can still handle all cronjobs processing, and we can easily stop, add or remove any server for maintenance or upgrade.

When will the deployment complete?

The deployment will be started at 2:00 AM, Monday, January 25, 2016, UTC. Estimated time: 2 hours. Duration that time, we'll copy the whole database into new servers' database. We'll also disable most of our website functions to keep the user data intact.

What are new server IP addresses?

We'll still use the same IP addresses from one year ago, except that we'll replace the IP address with We'll be sending emails from these 3 new servers, while the IP address get blacklisted at SpamRats. They blacklisted the whole Class C IP address (means 173.255.210.*), and that can't be helped.

We can't keep the IPv6 addresses, so we'll use 3 new IPv6 addresses too. So here are 3 new servers' IP addresses:
  • Server 1: - 2600:3c01::f03c:91ff:fef1:a819
  • Server 2: - 2600:3c01::f03c:91ff:fef1:33bf
  • Server 3: - 2600:3c01::f03c:91ff:fef1:31a2
All servers are in Fremont, California, USA.

Are there anything else changed?

Besides one new IPv4 address and 3 new IPv6 addresses, we also remove the server selection feature. It's already removed now for newly created cronjobs, and existing cronjobs with no server selected.

All cronjobs will be processed randomly from 3 new servers, and you can't change that. It's to make sure the 3 servers are load balanced, and when one server is down, your cronjobs can still be executed by other servers as well.

Will my cronjobs be affected?

For most of cases, no. Your cronjobs will be executed properly, with no downtime. Here are some cases that your cronjobs may be affected because of the IP addresses changed:
  • Your hosting provider's firewall may block our (new) IP addresses
    Please contact your hosting provider and ask them to whitelist our new IPv4 and IPv6 addresses.
  • Your CDN firewall may block our IP address
    Please update your CDN service (e.g. Cloudflare) settings to add our IP addresses to its whitelist. Contact the CDN support staff if you're not sure how to do it.
  • Your server firewall may block our IP addresses
    Do the same thing: add our IP address into your firewall whitelist.
  • Your script may block our new IP address
    If you only allow some IP addresses to trigger your script, please update your script so it'll accept our new IP addresses.
If your cronjobs may be affected like these cases, you should resolve it now. After Jan 25, the change will be applied and your cronjobs may not work.
If you think your affected case is not listed here, leave a comment below or contact me.

How can I know if my cronjobs are affected?

- If your server firewall blocks our requests, we won't able to connect to your server. In the cron execution results, you will see the connection error messages, e.g. "connection time-out" or "connection refused". If that's the case, please contact your hosting provider and ask them to whitelist our IP addresses.
If you didn't contact your hosting provider regarding their firewall, and they haven't ever block our IP addresses, then it's very likely that they won't block our new IP addresses. So, nothing to worry.
- If you needed to add our IP addresses to your script whitelist before, just add our new IP addresses to it now, and that's it.

Best regards,
Nguyen An Thuan.