7
submitted 2 years ago* (last edited 2 years ago) by [email protected] to c/[email protected]

Is there any library for the queueing mechanism?

What's used by the most - Cron? But a task or rather script executed by Cron won't access to the context of an application. Meaning, a task will have be an independent unit. Whereas I want is a library to use inside a project such that it'll have access to everything.

Anything similar to Sidekiq exist in Rust?

you are viewing a single comment's thread
view the rest of the comments
[-] [email protected] 2 points 2 years ago
std::thread::spawn(|| {
    loop {
        std::thread::sleep(std::time::Duration::from_secs(30*60));
        do_job();
    }
});

Works pretty well. Maybe add a bit of code to crash the whole process on panic or some other logging. Wastes a few KiB of memory per loop but probably not a major issue. Doing this with async will waste only the tiniest amount of memory.

[-] [email protected] 0 points 2 years ago* (last edited 2 years ago)

what if one of the calls crashes? how would you re-run it?

[-] [email protected] 1 points 2 years ago

Best option is probably to add a wrapper around the thread that re-spawns it. But you can also just catch panics in the loop.

[-] [email protected] 0 points 2 years ago* (last edited 2 years ago)

How would you re-run it multiple times then? An internal should be progressively greater. How would you terminate it if it continues to produce an exception?

load more comments (2 replies)
this post was submitted on 18 Sep 2023
7 points (73.3% liked)

Rust Programming

8858 readers
1 users here now

founded 6 years ago
MODERATORS