How can i perform various task (such as email alert/sending news letter) on a configured schedule time on a shared hosting server.
thankx dude , i love this website.
How can i perform various task (such as email alert/sending news letter) on a configured schedule time on a shared hosting server.
thankx dude , i love this website.
Here's a Global.ascx.cs file I've used to do this sort of thing in the past, using cache expiry to trigger the scheduled task:
public class Global : HttpApplication
{
private const string CACHE_ENTRY_KEY = "ServiceMimicCacheEntry";
private const string CACHE_KEY = "ServiceMimicCache";
private void Application_Start(object sender, EventArgs e)
{
Application[CACHE_KEY] = HttpContext.Current.Cache;
RegisterCacheEntry();
}
private void RegisterCacheEntry()
{
Cache cache = (Cache)Application[CACHE_KEY];
if (cache[CACHE_ENTRY_KEY] != null) return;
cache.Add(CACHE_ENTRY_KEY, CACHE_ENTRY_KEY, null,
DateTime.MaxValue, TimeSpan.FromSeconds(120), CacheItemPriority.Normal,
new CacheItemRemovedCallback(CacheItemRemoved));
}
private void SpawnServiceActions()
{
ThreadStart threadStart = new ThreadStart(DoServiceActions);
Thread thread = new Thread(threadStart);
thread.Start();
}
private void DoServiceActions()
{
// do your scheduled stuff
}
private void CacheItemRemoved(string key, object value, CacheItemRemovedReason reason)
{
SpawnServiceActions();
RegisterCacheEntry();
}
}
At the moment, this fires off your actions every 2 minutes, but this is configurable in the code.
Somone on here was doing this by creating threads in global.asax. Sounded like they were having success with it. I've never tested this approach myself.
This in my opinion would be a better option then overloading the cache expiration mechanism.