{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":628014097,"defaultBranch":"master","name":"dramatiq","ownerLogin":"wavemm","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2023-04-14T17:52:06.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/29598109?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1712953491.0","currentOid":""},"activityList":{"items":[{"before":"50003707527c74a286f6573a0959ba303921013a","after":null,"ref":"refs/tags/kamal/2024-04-11-backport-thread-boot-hooks","pushedAt":"2024-04-12T20:24:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kamalmarhubi","name":"Kamal Marhubi","path":"/kamalmarhubi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50936?s=80&v=4"}},{"before":null,"after":"50003707527c74a286f6573a0959ba303921013a","ref":"refs/heads/kamal/2024-04-11-backport-thread-boot-hooks","pushedAt":"2024-04-12T20:24:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kamalmarhubi","name":"Kamal Marhubi","path":"/kamalmarhubi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50936?s=80&v=4"},"commit":{"message":"feature: add middleware after_{consumer,worker}_thread_boot hooks\n\nThis allows the middleware to run code in the context of a worker or\nconsumer thread before it enters its run loop. This could be used to set\nup thread-local resources, or as in the author's case, to get a reference\nto the thread before it does any work.\n\nThis was proposed on the mailing list [0] with Bogdan accepting the idea\nin principle [1].\n\n[0]: https://groups.io/g/dramatiq-users/topic/105311701\n[1]: https://groups.io/g/dramatiq-users/topic/105311701#258","shortMessageHtmlLink":"feature: add middleware after_{consumer,worker}_thread_boot hooks"}},{"before":"50003707527c74a286f6573a0959ba303921013a","after":null,"ref":"refs/tags/thread-boot-hooks","pushedAt":"2024-04-11T20:05:53.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"kamalmarhubi","name":"Kamal Marhubi","path":"/kamalmarhubi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50936?s=80&v=4"}},{"before":"6ab37b4b20e0306c0d8298a0008cacf42bbb232f","after":"b0289da80b404189b77bdf48d7cfa8f65005c005","ref":"refs/heads/kamal/2024-04-04-thread-boot-hooks","pushedAt":"2024-04-11T19:53:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kamalmarhubi","name":"Kamal Marhubi","path":"/kamalmarhubi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50936?s=80&v=4"},"commit":{"message":"feature: add middleware after_{consumer,worker}_thread_boot hooks\n\nThis allows the middleware to run code in the context of a worker or\nconsumer thread before it enters its run loop. This could be used to set\nup thread-local resources, or as in the author's case, to get a reference\nto the thread before it does any work.\n\nThis was proposed on the mailing list [0] with Bogdan accepting the idea\nin principle [1].\n\n[0]: https://groups.io/g/dramatiq-users/topic/105311701\n[1]: https://groups.io/g/dramatiq-users/topic/105311701#258","shortMessageHtmlLink":"feature: add middleware after_{consumer,worker}_thread_boot hooks"}},{"before":"8a284c9a377e648649a74c55562634dcf439e926","after":"6ab37b4b20e0306c0d8298a0008cacf42bbb232f","ref":"refs/heads/kamal/2024-04-04-thread-boot-hooks","pushedAt":"2024-04-05T00:32:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kamalmarhubi","name":"Kamal Marhubi","path":"/kamalmarhubi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50936?s=80&v=4"},"commit":{"message":"wip: add after_{consumer,worker}_thread_boot hooks","shortMessageHtmlLink":"wip: add after_{consumer,worker}_thread_boot hooks"}},{"before":null,"after":"8a284c9a377e648649a74c55562634dcf439e926","ref":"refs/heads/kamal/2024-04-04-thread-boot-hooks","pushedAt":"2024-04-04T23:22:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"kamalmarhubi","name":"Kamal Marhubi","path":"/kamalmarhubi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50936?s=80&v=4"},"commit":{"message":"wip: add after_{consumer,worker}_thread_boot hooks","shortMessageHtmlLink":"wip: add after_{consumer,worker}_thread_boot hooks"}},{"before":"78f0f8bbd6312ebb0b811f661ef5fe8773107aa3","after":"76578a6ea5017f5a0680279692eee357d7b7f229","ref":"refs/heads/master","pushedAt":"2023-08-11T18:27:21.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"es","name":"Emil Stolarsky","path":"/es","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2137369?s=80&v=4"},"commit":{"message":"build: remove libmemcached11 before installing -dev","shortMessageHtmlLink":"build: remove libmemcached11 before installing -dev"}},{"before":null,"after":"e15aeb50f44dda395aee973e8a0bd27c9d148a01","ref":"refs/heads/es/add-support-for-rmq-quorum-queues","pushedAt":"2023-04-14T17:54:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"es","name":"Emil Stolarsky","path":"/es","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2137369?s=80&v=4"},"commit":{"message":"Add support for Quorum Queues to RabbitMQ Broker\n\nThis PR adds support for declaring queues as [quorum queues](https://www.rabbitmq.com/quorum-queues.html). Quorum queues\nare the new standard for persistent queues in RabbitMQ. Rather than adding a lot more complexity to management of queues,\nI've opted to have quorum queues a broker level setting. Either all queues are expected to be quorum queues or none of\nthem are (for the instantiated broker). Unfortunately, there's no built-in way of switching a classic mirrored queue\nover to being a quorum queue. Rather than forcing an opinion on users, it's left up to the users.\n\nFor the purposes of Dramatiq, the major feature that is supported by the RabbitMQ broker, but [not by quorum\nqueues](https://www.rabbitmq.com/quorum-queues.html#feature-matrix) is priorities. I've added an instantiation check to\nthe RabbitMQ broker that raises an exception if it's passed both a `max_priority` & enables `quorum_queues`. I've chosen\nnot to add any extra logic to messages that set a priority (you can imagine we silently swallow the message priority\ninstead of erroring as would currently happen).\n\n**Testing**\n\nTo facilitate testing if the queue is in fact a quorum queue, I've added the requests library and send an API request\nover to RabbitMQ directly. The alternative is more magic of declaring queues with the expected parameters that feels\nlike it's breaking through too many layers of abstraction for my own comfort. I'm open to switching back to that\napproach to avoid adding the extra test dependency.","shortMessageHtmlLink":"Add support for Quorum Queues to RabbitMQ Broker"}},{"before":null,"after":"a945b21709f114c5e994efd06b09467fb83b2914","ref":"refs/heads/es/add-support-for-deleting-queues","pushedAt":"2023-04-14T17:54:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"es","name":"Emil Stolarsky","path":"/es","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2137369?s=80&v=4"},"commit":{"message":"Add support for deleting queues after flushing them\n\nIn an environment where we're trying to reset a queue by flushing it (e.g. tests), it can be desirable to also have the ability\nfor the queue to be deleted. For example, if you'd like to create a new queue with different parameters, but the same name.","shortMessageHtmlLink":"Add support for deleting queues after flushing them"}},{"before":null,"after":"43c20a57701f9efb80f85750366932fae2700365","ref":"refs/heads/es/ensure-only-canonical-queue-names-are-added-to-rmq","pushedAt":"2023-04-14T17:54:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"es","name":"Emil Stolarsky","path":"/es","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2137369?s=80&v=4"},"commit":{"message":"Ensure only canonical are added to RabbitmqBroker.queues\n\nWhen a worker is started, it'll eventually start two consumers: one for reading off the queue and another for reading off the delayed queue. When it starts consuming off the delayed queue, it calls\n`RabbitmqBroker#consume('queue_name.DQ')`. In tern, 'queue_name.DQ' goes through the declare queue initialization which results in its name being added to the `queues` set. This becomes an issue as later\non in commands such as flush, assumptions are made that only the canonical queue name is present.","shortMessageHtmlLink":"Ensure only canonical are added to RabbitmqBroker.queues"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEL3G80gA","startCursor":null,"endCursor":null}},"title":"Activity ยท wavemm/dramatiq"}