1

EDIT: This website contains a wealth of information regarding my question: http://www.enterpriseintegrationpatterns.com/patterns/messaging/index.html

I'm working on a C# based windows service that will have 2-3 instances per VM running on 10-20 VMs. The service needs to iterate through a set of customers and "do work" for each customer.

I've created a SQL Server database table that each service writes to in order to prevent redundant processing, e.g. svc1 is currently processing cust1 and no other service should process cust1 until cust1's next scheduled time.

Essentially, I have a table to storing ScheduledPollTime, LastPollEnd, LastPollStart, PollStatus, CustID

This works, but I wasn't able to find any "Best Practices" for this scenario or if this scenario has a title, e.g. Auditing Parallel Service Status, to research further.

I think my solution has serious scalability issues, which is why I wanted to get some advice on how to find best practices for my situtation.

What is the name of this process? Are there best practices?

Jacob Barnes
  • 1,480
  • 1
  • 12
  • 29
  • Possibly look into `ZeroMQ`? At least look at the guidebook, and in particular, the section on `Parallel Pipeline with Kill Signalling'. At least the model diagram should be somewhat enlightening. – code4life Sep 06 '17 at 00:17
  • Ah, message queues. I appreciate the response. I will look into zeromq and message queues in general – Jacob Barnes Sep 06 '17 at 00:44
  • well, message queues might not be the same thing. The diagram I was referencing describes a "marshalled" parallel worker processes. Basically, the workers are centrally managed by one process. But it doesn't necessarily have to be message queue oriented, it could be simple signal control, via the marshalling process. – code4life Sep 06 '17 at 01:41

0 Answers0