Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Will wordpress run cron if I have scheduled emails to send? Seems like if no visit (request) is made to the site, scheduled tasks won't run and therefore emails won't be sent eg. hourly.

According to current situation, if there is no visit to the site for few hours ( and than visit is made) than all scheduled emails will be sent at the same time

How can I prevent this, is there a plugin to add cron task?

share|improve this question
add comment

2 Answers

up vote 7 down vote accepted

You cannot rely on wp-cron for consistent results so you have to look to the server level. Most enterprise-level Wordpress installations need some sort of consistent automation. This is how I automate WordPress in this type of situation.

You will need to add a crontab to the server itself. If you're running Linux, you can use crontab -e to get to the edit screen.

Then add a simple curl command to hit your site on a regular basis:

0 * * * * curl http://yoursite.com/ >/dev/null 2>&1

This command will run once per hour. The bits at the end send the output to null and removes the email functionality every time the cron runs.

I use this on my sites to get around wp-cron's fickle 'scheduling'. If you're not positive about creating a crontab schedule, check out this handy tool for generating a crontab command. http://www.robertplank.com/cron/

If you're on a shared host, hopefully you have cPanel which if enabled, will give you a GUI to add a cron job. If for some reason you can't add a crontab, I would consider finding a host that gives you shell access and allows you the flexibility you need.

I've never used a cron hosting service, but you could check it out if your host won't let you add a crontab. http://www.easycron.com/ is an example of a cron host. (Again, I don't know the reliability of these services)

Hope this helps you!

share|improve this answer
add comment

Overall

The schedule functions and cron filters are not considered to be a real API in WordPress. This has several reasons, but the most important is, that such stuff must run server side on a lower level than a content management system/framework like WordPress is.

Explanation

WordPress runs on PHP, which (simply said) communicates between the server and the browser (along with other programming languages like javascript). Therefore it is meant to run on ever request (by a user - who opens the page inside her/his browser). And without this sort of interaction, you can't run anything.

That's it. :)

Solution?

As WordPress (what this Q/A site is about) can't deliver a solution that works without user interaction, I can't give you any other advice, than to check what your host allows you and if you don't get around, ask them for help.

share|improve this answer
    
Humbly disagree with -> 'And without this sort of interaction, you can't run anything.' You can hit a site from crontab, launchctl, automator, Windows Task scheduler, etc... A browser is not the only way to run a PHP script. –  Brian Fegter Jul 24 '12 at 1:59
1  
Ok :) If you got the time and mood, then it's now on you to deliver the long explanation... –  kaiser Jul 24 '12 at 2:08
    
:) I think I did somewhat in my answer. –  Brian Fegter Jul 24 '12 at 2:11
    
@BrianFegter Guess I need to flag your answer as "off topic" ;) –  kaiser Jul 24 '12 at 2:16
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.