akamaozu
Joined 12 years ago
Joined 12 years ago
Just occurred to me there's a different possibility:
The extra connection bug mentioned could be from a rogue thread/process/code-path connecting to the queue and fetching an item, but somehow not doing the work.
Verifying this likely requires access to the codebase, so treat this as little more than idle speculation.
why does generating indexes at start-up not count as having indexes?
(asking because i do this all the time)
it feels correct, even though it's not a complete guide
(reliably persisting changes to disk is a big part of what dbs do, but is missing here)
- clear case of misconfigured instance (prefetch) and a bug somewhere in the stack (reconnection issue)
- prefetch behavior sounds like they receive a message, ack it then process it
- i wouldn't recommend ack before processing, because you become responsible for tracking and verifying if the worker ran to completion or not.
- work then ack is the way. the other way around ignores key job processing benefits like rabbitmq automagically requeueing messages when a worker crashes and failure related logic like deadletter queues.
- the trick i've started leaning on with rabbitmq is giving each worker their own instance queue (i call it their mailbox).
- when a worker starts a job, it writes the job id, start time and the worker's mailbox to a db. any system can now look up the "running job" in the database, know how long it has been running and can even talk to the worker using its mailbox to inquire if it is running and if that job state in the db is accurate.
- happy the writer and team found what works for them. ultimately, what you understand best would serve you better, so they made a good choice to lean on their strengths (postgre).
Just got back into the job market, and every potential employer has expressed gratitude for my level of honesty and transparency.
I'm "weaker" at negotiations since I've laid out my cards on the table upfront. The other side of the coin is companies are less likely to waste my time unnecessarily, or play hardball too much when you appear to roll over so easily.
My take on Hard Truth 6 is to be careful and strategic with your honesty. It may not always be interpreted the way you intended, so be honest but be wise about what you're disclosing.
Two wrongs don't make a right.
> Crypto messaging does not appear to be directed at the rational or sensible.
I would recommend it to anyone looking to experiment with a "high latency social network".