Go to file
Alex Vandiver d5a6b0f99a queue: Rename queue_size, and update for all local queues.
Despite its name, the `queue_size` method does not return the number
of items in the queue; it returns the number of items that the local
consumer has delivered but unprocessed.  These are often, but not
always, the same.

RabbitMQ's queues maintain the queue of unacknowledged messages; when
a consumer connects, it sends to the consumer some number of messages
to handle, known as the "prefetch."  This is a performance
optimization, to ensure the consumer code does not need to wait for a
network round-trip before having new data to consume.

The default prefetch is 0, which means that RabbitMQ immediately dumps
all outstanding messages to the consumer, which slowly processes and
acknowledges them.  If a second consumer were to connect to the same
queue, they would receive no messages to process, as the first
consumer has already been allocated them.  If the first consumer
disconnects or crashes, all prior events sent to it are then made
available for other consumers on the queue.

The consumer does not know the total size of the queue -- merely how
many messages it has been handed.

No change is made to the prefetch here; however, future changes may
wish to limit the prefetch, either for memory-saving, or to allow
multiple consumers to work the same queue.

Rename the method to make clear that it only contains information
about the local queue in the consumer, not the full RabbitMQ queue.
Also include the waiting message count, which is used by the
`consume()` iterator for similar purpose to the pending events list.
2020-10-09 20:40:39 -07:00
.circleci circleci: Put the branch name into the topic on failure. 2020-09-18 10:37:56 -07:00
.github dependencies: Upgrade JavaScript dependencies. 2020-09-24 16:33:45 -07:00
.tx cleanup: Delete trailing newlines. 2019-08-06 23:29:11 -07:00
analytics activity: Show server time rather than browser time. 2020-10-08 19:17:35 -07:00
confirmation urls: Remove unused URL names and shorten others. 2020-09-22 10:46:28 -07:00
corporate support: Add option to change billing method. 2020-09-28 15:37:49 -07:00
docs docs: Add docker push notifications registration example. 2020-10-02 15:27:32 -07:00
frontend_tests message_send: Fix old guests being treated as full members. 2020-10-08 11:30:11 -07:00
locale locale: Fix invalid JSON in locale/tr/translations.json. 2020-08-07 11:12:32 -07:00
pgroonga migrations: Escape more pedantically in pgroonga.0003_v2_api_upgrade. 2020-06-13 21:50:37 -07:00
puppet puppet: Remove absent of check-apns-tokens. 2020-09-29 18:17:08 -07:00
requirements openapi: Remove yamole. 2020-09-29 16:47:10 -07:00
scripts upgrade-postgres: Pass the requested postgres explicitly. 2020-10-01 14:29:24 -07:00
static css: Hide bottom-right resizable box in view-source textarea. 2020-10-08 17:13:50 -07:00
stubs stripe: Create void_all_open_invoices. 2020-09-28 15:37:49 -07:00
templates activity: Show server time rather than browser time. 2020-10-08 19:17:35 -07:00
tools run-dev: Wait for children to exit on Ctrl+C after killing them. 2020-10-07 16:15:19 -07:00
zerver queue: Rename queue_size, and update for all local queues. 2020-10-09 20:40:39 -07:00
zilencer queue: Set a max consume timeout with SIGALRM. 2020-10-06 17:26:14 -07:00
zproject auth: Render config error page on configuration error. 2020-09-25 16:16:17 -07:00
zthumbor zthumbor: Rename thumbor.conf to thumbor_settings.py. 2020-07-06 18:44:58 -07:00
.browserslistrc browserslist: Drop 0.2% usage threshold to 0.15%. 2020-09-28 10:57:49 -07:00
.codecov.yml codecov: Change threshold to use percentage syntax. 2019-07-20 14:37:04 -07:00
.editorconfig styles: Rename .scss files back to .css. 2020-09-15 16:33:28 -07:00
.eslintignore blueslip: Apply ESLint. 2019-11-01 12:13:59 -07:00
.eslintrc.json eslint: Fix no-useless-concat. 2020-10-07 16:00:33 -07:00
.gitattributes Revert "gitattributes: Mark yarn.lock as "binary", i.e. suppress diffs." 2019-05-20 19:31:14 -07:00
.gitignore tools: Move CI docker images files into tools/ci. 2020-06-29 16:31:43 -07:00
.gitlint lint: Allow revert commit messages in gitlint. 2018-02-13 09:21:01 -08:00
.isort.cfg isort: Enable black profile. 2020-09-02 11:00:07 -07:00
.mailmap mailmap: Give priority to Vishnu KS's zulip email. 2020-07-31 10:37:49 -07:00
.npmignore Add proxy notes to new README.dev.md troubleshooting section. 2016-03-29 21:54:05 -07:00
.prettierignore lint: Use Prettier for JSON files. 2020-07-24 09:42:56 -07:00
.pyre_configuration pysa: Update .pyre_configuration to point to typeshed. 2020-09-22 15:44:47 -07:00
.sonarcloud.properties tools: Configure Zulip to be scannable by SonarCloud. 2020-06-24 12:41:17 -07:00
.yarnrc .yarnrc: Set ignore-scripts true. 2019-08-28 16:15:54 -07:00
CODE_OF_CONDUCT.md docs: Fix various capitalization errors. 2020-08-11 10:25:52 -07:00
CONTRIBUTING.md docs: Tweak descriptions of zulip-devel-announce and friends. 2020-09-03 17:39:16 -07:00
Dockerfile-postgresql base Zulip PostgreSQL Docker container on PGroonga official one 2019-12-30 10:20:25 -08:00
LICENSE docs: Bump copyright year. 2020-04-23 16:04:54 -07:00
NOTICE license: Move license application notice from LICENSE to NOTICE. 2018-10-02 12:04:44 -07:00
README.md docs: Fix various capitalization errors. 2020-08-11 10:25:52 -07:00
SECURITY.md docs: Create GitHub SECURITY.md file. 2020-06-25 15:23:22 -07:00
Vagrantfile vagrant: Add parallels as a provider. 2020-08-14 16:03:51 -07:00
babel.config.js babel: Specify core-js minor version. 2020-10-05 14:51:03 -07:00
manage.py python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
mypy.ini zthumbor: Fix strict_optional errors. 2020-07-06 11:25:48 -07:00
package.json eslint: Enable eslint-plugin-unicorn. 2020-10-07 16:00:33 -07:00
postcss.config.js styles: Rename .scss files back to .css. 2020-09-15 16:33:28 -07:00
prettier.config.js casper: Remove few traces of casper. 2020-08-30 17:16:02 -07:00
setup.cfg lint: Use standard setup.cfg configuration for pycodestyle. 2020-07-14 00:41:20 -07:00
stylelint.config.js dependencies: Upgrade JavaScript dependencies. 2020-09-02 19:34:37 -07:00
tsconfig.json typescript: Enable strictNullChecks. 2020-07-28 11:01:35 -07:00
version.py eslint: Enable eslint-plugin-unicorn. 2020-10-07 16:00:33 -07:00
webpack.config.ts eslint: Fix unicorn/import-style. 2020-10-07 16:00:33 -07:00
yarn.lock eslint: Enable eslint-plugin-unicorn. 2020-10-07 16:00:33 -07:00

README.md

Zulip overview

Zulip is a powerful, open source group chat application that combines the immediacy of real-time chat with the productivity benefits of threaded conversations. Zulip is used by open source projects, Fortune 500 companies, large standards bodies, and others who need a real-time chat system that allows users to easily process hundreds or thousands of messages a day. With over 500 contributors merging over 500 commits a month, Zulip is also the largest and fastest growing open source group chat project.

CircleCI branch Coverage Status Mypy coverage code style: prettier GitHub release docs Zulip chat Twitter

Getting started

Click on the appropriate link below. If nothing seems to apply, join us on the Zulip community server and tell us what's up!

You might be interested in:

You may also be interested in reading our blog or following us on Twitter. Zulip is distributed under the Apache 2.0 license.