I have a "smart-FIFO" queuing problem with two kinds of information requests (IR's):
1) IR1 of highest priority has a min. processing time of 2 hours;
2) IR2 of lowest priority has a min. processing time of 1 hour;
IR1 requests need to be dealt with before IR2 requests.
Instead of having 2 different priority queues (one for each different priority and processing time), is it possible to handle this in a single FIFO queue? (E.g for 4 different priorities the Sketch will become really messy and I may loose out on competition with Enterprise Dynamics gurus in my company...). Thanks.
Priority queues
-
- Senior Member
- Posts: 1107
- Joined: Wed Mar 12, 2003 2:46 pm
from the information given I can't really say whether this can be done in one queue or would need two, or something entirely different. Actually, if you have distributed processing times then it might work better to allocate the IRs to an array of levels all with DELAY FIXED for their processing time. ie
inflow[IRClass,PTGroup] = total IR generation[IRClass] * fraction generation to class[IRClass,PTGroup]
outflow[IRClass,process time] = DELAY FIXED(inflow[IRClass,PTGroup],processing time[PTGroup])
IRClass: IR1,IR2
PTGroup: P1To2,P2to3,P3to4,P4to5
processing time[PTGroup] = 1,2,3,4,5
fraction generation to class[IR1,PTGroup] = 0,0.3,0.3,0.2,0.2
fraction generation to class[IR2,PTGroup] = 0.3,0.3,0.2,0.2,0
or something like that. Intead of delay fixed you could also use queues, and then use a common resource to do the allocation requiring that the age of the items in each queue be at least processing time before they are candidates to be pulled out. That would actually be the most accurate, though a bit messy (equations not diagram).
inflow[IRClass,PTGroup] = total IR generation[IRClass] * fraction generation to class[IRClass,PTGroup]
outflow[IRClass,process time] = DELAY FIXED(inflow[IRClass,PTGroup],processing time[PTGroup])
IRClass: IR1,IR2
PTGroup: P1To2,P2to3,P3to4,P4to5
processing time[PTGroup] = 1,2,3,4,5
fraction generation to class[IR1,PTGroup] = 0,0.3,0.3,0.2,0.2
fraction generation to class[IR2,PTGroup] = 0.3,0.3,0.2,0.2,0
or something like that. Intead of delay fixed you could also use queues, and then use a common resource to do the allocation requiring that the age of the items in each queue be at least processing time before they are candidates to be pulled out. That would actually be the most accurate, though a bit messy (equations not diagram).