Konstantine
Konstantine

Reputation: 81

Correct implementation of background worker for Azure function app

What would be the correct way to implement a background worker, on an azure function app, http triggered? The process won't be in any way a long running one, just 2-3 rest calls (between 0,5 and 3 seconds), but enough to break the overall user experience.

Currently, I am using Task.Run(async ()). The same rest calls are used in other use-cases are normally available calls.

Normally I would deal with it by using a IHostedService, but it's not available in Azure function apps.

Upvotes: 0

Views: 1499

Answers (1)

Stephen Cleary
Stephen Cleary

Reputation: 457167

You would need to have a different trigger. Have your HTTP-triggered function place a queue message in a queue, and have the queue-triggered function execute the background work.

This is the proper solution for request-extrinsic code anyway, even if you aren't using Functions.

Note that your queue messages will be delivered at-least-once, so if your queue-triggered function isn't idempotent, then you'll need to de-duplicate them.

Upvotes: 1

Related Questions