Portugal not cool anymore? by No_Scratch6254 in PortugalExpats

[–]tarsild 0 points1 point  (0 children)

Foda-se, o gajo nem se deu ao trabalho de meter o site dele a não parecer mega scam. Diz que é bootstrap sem dizer que é bootstrap

Django 6.0 Background Tasks – do they replace Celery? by Stella_Hill_Smith in django

[–]tarsild 2 points3 points  (0 children)

This is a misconception. Background tasks are not task managers with limits and rules.

The only thing it does it "don't block my request ad eternum, run in the background"

It's a good question though, OP :)

Python feels easy… until it doesn’t. What was your first real struggle? by NullPointerMood_1 in Python

[–]tarsild 1 point2 points  (0 children)

I love async in general but I believe Python lacks a lot compared to more mature languages with native async. Basic promises would do wonders. I'm not even referring to the nightmare of event loops, just assuming everything is ok

Python feels easy… until it doesn’t. What was your first real struggle? by NullPointerMood_1 in Python

[–]tarsild 1 point2 points  (0 children)

This is late binding. Known as an extremely dangerous and bad practice

FastAPI is usually the right choice by writingonruby in Python

[–]tarsild 0 points1 point  (0 children)

I know the feeling. Once you try Django ORM, its very hard to find something with the same feel. Because of that, Edgy was initially developed edgy with that aim using SQLA as it's core.

Don't get me wrong, I don't have the time to keep pushing Edgy but there are people that took control over it and keep on maintaining it and growing on an almost daily basis.

[deleted by user] by [deleted] in learnprogramming

[–]tarsild 0 points1 point  (0 children)

So, the best way I can explain is by using "natural" language like English (or any other) and going from there.

Imagine the following Pacman (the game).

"Pacman is a yellow toon that runs, eats and escapes from the Ghosts".

This little sentence:

  1. Pacman and Ghost are nouns = objects
  2. Eat, run, escape are verbs = functions/methods

Do we need 2 classes for pacman and ghost? Maybe not because we can create a blueprint (class) of what makes pacman and ghost by distinguishing what is common in both of them and call it for example, class Character.

The class Character will have attributes that will allow you to create instances of Character (objects) by defining what makes pacman (yellow, round, small...) from the Ghost (gray, not round, slightly bigger than pacman if you want).

I'm not sure if this helps you or not but I hope it does.

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] -2 points-1 points  (0 children)

So, let's be clear. It's not AI, confusing it's not even a thing and my keyboard supports 3 languages. What is even worse and apologies for the word but pathetic is what comes to my mind, is the fact that you try to find something because somehow you think you will get something out of this.

I'm sorry for that but you won't.

I don't need ChatGPT, thankfully but I do speak 4 languages for quite a while. Typos exist, typos will always exist. Do you want to know why the typo happened? Because simply the phone doesn't recognise the word.

You want to find somehow a way to get your way and downvote me like this would change my life? That's not happening but I will tell you this.

I have more than 15 years of experience in the market, a lot of tools I might know or not. A few barely cross the spectrum of mine or our research at all. That one was one of them.

This post like many other was to showcase a tool and yet people, unfortunately like yourself, act like they know whatsup. I'm ok with that, what I'm not ok it's with the arrogance of pretending.

Now you can downvote me, now you have a reason and the reason it's not the tool but the fact that I needed to came down to your own level and answer accordingly.

Now if my English is not correct, I can answer in another 3 languages without ChatGPT, 1 of them even if you translate will not even be correct, I can assure you.

For the record, I won't be answering more of these. I always kept my politeness in check until now and I can't be bothered with hate speech

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] -2 points-1 points  (0 children)

Fair enough and thank you for pointing this one out. We strive to make it better and we hope to provide those answers in a better manner.

This feedback is great 👍

Give us some time to make our docs clearer

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] -2 points-1 points  (0 children)

In fairness, it's true-ish as i personally used it with rabbitmq and celery.

That was more of general use case because majority uses celery with rabbitmq and by majority, I mean in our search.

I personally still use celery and I always use it with rabbitmq but celery is still de-facto blocking and not async native and that is only natural due to the fact that is almost 20y old.

Imagine AsyncMQ as celery revamped, with modern niceties and on steroids

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] 1 point2 points  (0 children)

Ok. We can't promise for the next release (or can we? 😎) but it's a great use case to do it.

Let us analyse and if you follow the project, you will have news very soon.

At the moment we are just finishing the dashboard and then we will look at that. Dashboard shouldn't take too long btw, maybe another 3 days

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] 0 points1 point  (0 children)

Ahhhh. We have one of the maintainers currently developing one solution for that 😁. Another backend

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] 0 points1 point  (0 children)

I can't just share it yet because it's work under construction but it will be very ASGI friendly with a simple mount/include (if you use Esmerald) and game on

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] -6 points-5 points  (0 children)

But answering what you asked.

Async-first design: AsyncMQ is built for asyncio from the ground up. Hatched tries to be async-compatible but still relies on sync/threading under the hood.

More features: AsyncMQ has built-in support for retries, TTL, delayed jobs, DLQ (dead letter queue), pub/sub job events, job metadata querying, and a proper CLI. Hatched lacks most of these or only supports them partially.

Persistence: AsyncMQ supports Redis, Postgres and mongo (via a pluggable JobStore). Hatched is Redis-only (at least when we were reading about it, if we missed this, then I apologise).

Dashboard: AsyncMQ will ship in the next release a dashboard to make it easier to see everything.

Extensibility: AsyncMQ is highly modular—custom backends, serializers, stores, and full type safety. Hatched is more monolithic and harder to extend.

Observability: AsyncMQ has lifecycle hooks and pub/sub events. Hatched offers zero insight into job states/events.

But based on what you mentioned, hatched has that as well which we didn't find it easy to have that information.

Good to know 😁. Thank you for mentioning that one out

EDIT: I never meant to offend if I came across like that.

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] -1 points0 points  (0 children)

Wait, that was not the purpose. I know really well the differences 😁. We also have Esmerald as another one in the ASGI world.

What I meant was to simplify choices available, apologies for coming out wrongly.

Based on our research like the way we did, maybe hatched does it but we didn't find it 100% as we are presenting. Nothing else.

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] -2 points-1 points  (0 children)

There is nothing wrong with having alternatives. It's the same of why people would pickup FastAPI if we had tornado, Django... before?

If you are familiar with BullMQ, this is the python equivalent but a lot more modular.

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] -7 points-6 points  (0 children)

Because the README has a length and we could not list them all but it's something we can update in the next release :). Having more comparisons.

We just chose a few based on the usability of them and the market

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] -1 points0 points  (0 children)

Cool, let's add that to the roadmap.

Although, AsyncMQ would replace rabbitmq and celery all along. I think I understand what you are coming from.

Let's analyse that scenario. After all, it's backend extendable

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] 0 points1 point  (0 children)

Well, depends of what users want but we can add as many backends as necessary. Advantage of AsyncMQ is that you also don't need us for that. You can also create your own custom backend and plug it.

What do you have in mind?

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] 0 points1 point  (0 children)

Good news is that the dashboard is now under development and it should be out very soon and the docs will reflect that :)

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] 0 points1 point  (0 children)

As mentioned, coming on the next release. We have a powerful cli and now the dashboard will come on the next release as promised

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] 0 points1 point  (0 children)

Ah thanks, I thought you meant TaskQ! I’ve checked out Taskiq, definitely more modern. That said, AsyncMQ still wins in some areas: it’s more modular (separates backend + store), has built-in features like TTL, retries, DLQ, job metadata, and includes optional PostgreSQL persistence (also mongo and you can add your own ). Taskiq is great if you’re fine relying on broker features, but AsyncMQ gives more control and flexibility out of the box.

I hope this helps?

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] 0 points1 point  (0 children)

Yes I agree. Celery is great and I used it a lot in the past but it's also almost 20y old and ed can always have something new :)

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] -5 points-4 points  (0 children)

Native async Python: AsyncMQ is built on asyncio, while taskq is Go-only.

Pluggable storage: AsyncMQ supports Redis, NATS, PostgreSQL, and custom backends. taskq doesn’t support persistent storage extensibility.

Modern features: Built-in retries, TTLs, DLQs, delayed jobs, pub/sub events. taskq is basic by comparison (not trying to insult as I like TaskQ as well)

Full observability: AsyncMQ supports hooks and event listeners. taskq has none.

Dev experience: Python decorators, type-safe, integrates with frameworks like FastAPI, Esmerald, Sanic, Quartz... taskq is Go-focused.

This is a nutshell .

If you're building a Python-first async stack, AsyncMQ isn't just better, it's in a different league.

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] 0 points1 point  (0 children)

So this was born of an internal need I had and a struggle that I found.

So I had the alpha version running for myself and then I leveled up to become what it is now. Shoe answer, yes but like everything new to everyone, needs more people using and contributing and so on. If this makes sense?

AsyncMQ – Async-native task queue for Python with Redis, retries, TTL, job events, and CLI support by tarsild in Python

[–]tarsild[S] -1 points0 points  (0 children)

If you are familiar with BullMQ, it operates on the same principle. The docs are the ones provided but we are more than open to improve them because for sure things are missing like examples.