838 karma · joined April 19, 2012
That definitely does the job. My point is that it is much more complex than a select/update clause in SQL.
Using sorted sets for scheduled tasks isn't the fragile part, gluing it all together to prevent losing jobs by shifting into backup lists (or hashes) is the fragile part in my experience.
PG is an amazing tool that can handle more than most people think (or at least more than I thought).
1. Message compaction — notifications are deduplicated, so if two jobs are inserted in the same queue the system may only get one notification. 2. Message saturation — with high levels of activity you’ll need to start discarding messages, essentially denouncing, otherwise the database gets throttled. 3. Dedicated connections — pubsub requires a dedicated connection for listening, which requires a single connection with custom dispatching or one connection per queue.
Relying on PG for everything is awesome regardless!
After replicating most of Sidekiq’s pro and enterprise behavior using older data structures I attempted to migrate to streams. What I discovered is that all the features I really wanted were available in SQL (specifically PostgreSQL). I’m not the first person to discover this, but it was such a refreshing change.
That led me to develop a Postgres based job professor in Elixir: https://github.com/sorentwo/oban
All the goodies only possible by gluing Redis structures together through lua scripts were much more straightforward in an RDBMS. Who knows, maybe the recent port of disque to a plug-in will change things.
Later I discovered that they provide CAD drawings for everything they carry. That was immensely helpful when designing things in say, Solidworks. If there were some screws that were called for it only took a visit to McMaster-Carr to get a 3D version of the real part.
One feature of PubSub that is also a caveat is that it is transactional. That is great for production code, but makes transactional tests impossible.
There are lots of bike lanes downtown but they aren’t protected or respected. We have a long way to go to make biking a safe form of transport like it is in the Netherlands.
They were the first thing I ever sold on eBay, sometime around 1999.
Sometimes software is just finished, not abandoned!
We’ve been using Pipenv, but it is atrociously slow and flawed at dependency resolution. An alternative is extremely welcome, E.g. Poetry which was mentioned above.
https://www.quora.com/Does-DigitalOcean-have-its-own-datacen...
Loosing a digit from a table saw certainly happens, but some of the other tools are less obvious and equally dangerous menaces.
I ask this because I've written content for the Codeship blog before and have links to it from my personal blog. If the content is going to vanish I'd like to publish it directly rather than have it lost to the ether.
Really pleased to see that I'm not the only one digging for info and that work is ongoing.
1: https://www.stuffyoushouldknow.com/podcasts/whats-the-10000-...
It is wonderful that Heroku now offers exec, which at least allows using observer and other remote debugging tools. The tooling keeps getting better—but there is no denying that it was designed for Ruby deployment, and working the BEAM has significant production differences.
The ability to connect between nodes, avoid mandatory restart, avoid connection limits and keep websocket connections alive easily gives compute engine a significant advantage over platforms like Heroku.
I had managed not to throw up for 20 years. That all went out the window when I had a child that attended school.