By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,667 Members | 2,214 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,667 IT Pros & Developers. It's quick & easy.

Scheduling in .Net C#

P: n/a
Hi,

In our application we need to have a high performance scheduling framework.
We want to be able to say for item 21 do an update on such and such time. We
will have around 1 million items of this kind with different scheduling
time, so not all will be updated per hour. Some will be per hour some will
be once every 2 weeks.

Does anyone has any suggestion how to tackle this problem? Oh and one of the
requirement is that we are not using any RDBMS database.

Thanks for any input.

/m
Nov 15 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
I million different schedules and NO Rdms?

Well, you can do it , but if you have to cache 1,000,000 million different
schedules locally in your app, I hope you have a lot f RAM and CPU power..

You can load up a datatable, constructed without using a DB(or whatever
multidimensional structure you like) with ProcessID, ProcessDate,
ProcessTime.... run a background thread with low priority to poll for that
magic time and fire your task. Run the thing as a Service so if you get an
error you can elegantly recover and move on. You may want to use a
callback to confirm that everythign worked, so if it didn't, you can rerurn
it. You could also use a messagequeue and firethem off with triggers
coupled with Transactions so if you get a failure, you won't lose
everything.

If it were me though, I'd be in SQL Server or Oracle scheduling
tasks....;-) I do it daily with 74 tasks and it works great... but 1m is a
lot of data.

HTH,

Bill
"Muscha" <mu****@no.spam.net> wrote in message
news:%2******************@TK2MSFTNGP12.phx.gbl...
Hi,

In our application we need to have a high performance scheduling framework. We want to be able to say for item 21 do an update on such and such time. We will have around 1 million items of this kind with different scheduling
time, so not all will be updated per hour. Some will be per hour some will
be once every 2 weeks.

Does anyone has any suggestion how to tackle this problem? Oh and one of the requirement is that we are not using any RDBMS database.

Thanks for any input.

/m

Nov 15 '05 #2

P: n/a
> I million different schedules and NO Rdms?

Unfortunately no, for some really complicated reasons that will take pages
to explain, we can't use RDBMS.
it. You could also use a messagequeue and firethem off with triggers
coupled with Transactions so if you get a failure, you won't lose
everything.
Can message queue do this? I thought message queue is just that, a queue.
You can't insert stuff in the middle of the queue right?

If it were me though, I'd be in SQL Server or Oracle scheduling
tasks....;-) I do it daily with 74 tasks and it works great... but 1m is a lot of data.
yes, although this 1 million is very small, I will have 16 bytes identifier
then the time stamp. In whatever format depending on how we are going to do
it.

thanks,

/m
"Muscha" <mu****@no.spam.net> wrote in message
news:%2******************@TK2MSFTNGP12.phx.gbl...
Hi,

In our application we need to have a high performance scheduling framework.
We want to be able to say for item 21 do an update on such and such time. We
will have around 1 million items of this kind with different scheduling
time, so not all will be updated per hour. Some will be per hour some

will be once every 2 weeks.

Does anyone has any suggestion how to tackle this problem? Oh and one of

the
requirement is that we are not using any RDBMS database.

Thanks for any input.

/m


Nov 15 '05 #3

P: n/a
William Ryan <do********@nospam.comcast.net> wrote:
I million different schedules and NO Rdms?

Well, you can do it , but if you have to cache 1,000,000 million different
schedules locally in your app, I hope you have a lot f RAM and CPU power..

You can load up a datatable, constructed without using a DB(or whatever
multidimensional structure you like) with ProcessID, ProcessDate,
ProcessTime.... run a background thread with low priority to poll for that
magic time and fire your task.


I wouldn't bother putting it in a DataTable myself. Just a simple
ArrayList, sorted by time so only the first entry needs to be looked
at, should be fine. So long as there isn't too much data per task, a
million entries needn't be too bad. (Doing a test with each entry
having a string of length 10-20 and a DateTime took about 80Mb.)

CPU power *really* shouldn't be a problem, unless a whole load of these
things are going to be running at a time.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
Nov 15 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.