OrontaMedu

OrontaMedu

I want to let the user run customly, statically predefined set of tasks from a web page, as well as view their states, results, possibly errors, arguments, when they were or will be executed…

A task might look like this:

defmodule MyTask1 do
  def run (args) do
  end
end

defmodule MyTask2 do
  def run (args) do
  end
end

defmodule MyTask3 do
  def run (args) do
  end
end

On a page “new task” I’d then show the user a dropdown with MyTask1, ...3 and a button “run”. And on a page “list user’s tasks”, I’ll show him all the tasks created by HIM: the likes of their statuses, buttons to manage them (terminate, for instance), inserted_at, result…

Think of them as “spider tasks” – for site1, site2, site3…
“download tasks” – for youtube, vimeo, vk…
or anything similar.

Let’s say, I planed to use Oban to power this. I’d then also need almost all the information that Oban keeps in the oban_jobs table – to show the user on a page. Additioanally, I’d need to be able to retrieve only the jobs of a particular user rather than all ones in the table.

Does Oban have interface for retrieving the information about the jobs at all? If so, how would I do this?

Otherwise, what would be a way to retrieve it? By SQL, directly from the table?

Showing Posts 1 to 3

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

Hey @OrontaMedu at a high level you can simply Oban.Job |> Repo.get(job_id) and query voila, you’ve got all of the relevant information.

That said, if you find yourself needing to modify the oban_jobs table to do things like store a user_id I would strongly suggest doing your own modeling around users and tasks, and then having those track which oban jobs are relevant. The oban_jobs table can see a lot of load and it is not optimal to use as both a canonical store of user related information AND a job queue.

OrontaMedu

OrontaMedu OP

I’ll create my own table – user_jobs (some_fields, ......., user_id, oban_job_id)

benwilson512

benwilson512

Author of Craft GraphQL APIs in Elixir with Absinthe

Yea I think that’s a great idea. This way you can also delete the actual oban job after a while (via the pruner) to keep that table small and performant. I’d make sure to denormalize any data you want to keep for the long term in your user_jobs table.

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews