I had a script which sends sms alerts everyday. I want it to send automatically send sms by fetching message from database. Can I do it without cron. Is there any other solution. Plz help
views:
557answers:
12set up a cron task elsewhere, have it request the script that sends the alerts.
Have an outside AppEngine cron job sheduler: Use google AppEngine, it's free. The outside "task" can then "callback" a PHP script of yours.
I fail to see what's wrong with using the local cron
on your machine though aside from it being blocked for you to access.
If you can't set up a cron job on the server, do it on a client you have access to (like your computer) so that it does a request when you need the script to be run.
This isn't the best answer as it still requires cron somewhere, but you could always setup another machine that does have cron, like your home computer for instance, to hit a page on your site which triggers the action (using a library like curl
or wget
).
In simple words, you can't run php scripts without using some sort of scheduler or cron...
You have a couple of options:
Emulate cron behavior: In your php code, check if the page was loaded at, or close to, the time you wish to schedule the sendout for, if the messages havent been sent yet, load the script that sends the messages in the background and flag them as sent.
As others have suggested, setup a cronjob somewhere else that will execute a script on your server by fetching the url via http (by using wget for example)
It's not optimal, but without using any kind of scheduler what you could do is this.
- Setup a header file for each page.
- Within the header file put your function / procedure that you would like to run.
- Make an if statement that checks the if the time is greater then or equal too the time you need your procedure to run and that it has not already been run.
Down sides of this is that:
- There is no guaranteed time of service.
- If your website does not get hits, then it might miss the window completely.
- Your adding at least 3 function calls to your page, not to mention the function calls required to check if this processes was done today, that might include a call to a MySQL server or flat file ...
I've used windows Task Scheduler to schedule a script on a server I couldn't access cron on before, that worked fine.
Outsource your scheduling tasks. Let other people hit F5 on your script on a regular basis.
darn this is gonna cost me reputation
Hello Rajasekar, you can try www.webcron.org, which permit cron launching every minute with differents time-out. with secure connection. Easy to use, it allows response analyze and databases integrity triggers. Eric
you can include your script and have it run every time some one visits your homepage/login page etc... set up a table in mysql called time. query the database everytime the page is visited. if (time argument) {run the script in the background, update the new time in the DB}
All you have to do is fuigure out how often you want to send out your sms emails. Ex. 1 time per day database row "time" has a date in it. the date is lets say 24 hours ago. if the db row "time" is less than or equal to today minus one day 1 day , then run your script. this will run your script once per day.
The draw back -> someone needs to visit your site atleast once per day.
What is your website URL? What are you doing?