we are receiving data via web api in Appian. as the volume is very high, we save the events to database to process them later via a second process model which keeps polling the db for pending events. The issue is that processing should be in ALMOST real time without overwhelming the Appian environment. to do that, we tried to schedule the polling process every 30 seconds. but the minimum time it takes for repeat configuration is 5 minutes which is of no use to us.
how can we configure a process to run every 30 seconds ?
Discussion posts and replies are publicly visible
Hi akshantr0678 Did you look at this transaction manager solution Appian Community
You probably do not need a polling process. At the end of WebAPi process you can trigger the 2nd process and it should have a condition if the previous instance is running do no initiate a 2nd DB query process.
Most efficient solution could be using kafka integration in 26.4
Instead of timer, have the pending events queried in batches in the process model. For processing have a separate process where you can pass the batch data and complete processing for multiple events in parallel. Loop through the batches and processing sub process by clearing/hiding unnecessary pvs for better memory management.
Not sure, what sort of processing is taking place. If its data related then see if in database itself store procedures/ triggers can help achieve the same instead of Appian process.
Did you consider to start a process every 5 minutes which then consumes more than one message?
Or, it spawns multiple processes consuming multiple messages?
You just have to make sure to consume each message only once. In such scenarios, I tend to use DB locking tables.