Skip to content

Commit f151dfa

Browse files
author
oxpull
committed
Align reliability and database-support copy with the published data
1 parent 086b306 commit f151dfa

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

‎index.html‎

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ <h1>A production worker for Django Tasks</h1>
2626
no Redis, nothing new to operate.</p>
2727
<p class="hero-sub">The part that matters: <code>enqueue()</code> is a plain INSERT on your
2828
default connection, so a task enqueued inside <code>transaction.atomic()</code> commits
29-
or rolls back together with your business data. A broker architecture cannot do this.
30-
There is no window where an order exists without its email task, and no
29+
or rolls back together with your business data. A broker cannot share your database
30+
transaction. There is no window where an order exists without its email task, and no
3131
<code>on_commit</code> boilerplate.</p>
3232

3333
<figure class="txn">
@@ -47,9 +47,9 @@ <h2>Measured, not promised</h2>
4747
versus 69 to 70 with a single worker. In-transaction enqueue latency was a tie, about
4848
half a millisecond at p50 for both.</p>
4949
<p>Reliability got the same treatment: 21 minutes of sustained load on PostgreSQL 16,
50-
37,802 tasks, while workers were repeatedly SIGKILLed mid-task. Every task reached a
51-
terminal state, zero were lost, zero completed twice, and interrupted work was
52-
reclaimed inside the documented bound.</p>
50+
37,802 tasks, including nine minutes in which workers were repeatedly SIGKILLed
51+
mid-task. Every task reached a terminal state, zero were lost, zero completed twice in
52+
that run, and interrupted work was reclaimed inside the documented bound.</p>
5353
<p class="caveat">No-op benchmarks flatter every queue, so read these as relative, not as
5454
capacity planning. The full methodology, every run, and the raw per-sample data ship in
5555
the repository.</p>
@@ -74,7 +74,8 @@ <h3><span data-package>django-ox</span> <span class="tag">BSD-3 &middot; free fo
7474
<li>Recurring schedules, cron syntax</li>
7575
<li>Pruning command for finished rows</li>
7676
</ul>
77-
<p class="note">PostgreSQL, MySQL 8+, and SQLite. Live now:
77+
<p class="note">PostgreSQL and SQLite, tested in CI; MySQL 8+ via the same
78+
SKIP LOCKED path. Live now:
7879
<code>pip install django-ox</code> &middot;
7980
<a href="https://github.com/oxpull/django-ox">GitHub</a> &middot;
8081
<a href="https://oxpull.github.io/django-ox/">docs</a>.</p>
@@ -110,8 +111,8 @@ <h2>Pricing, and the waitlist</h2>
110111
<button type="submit">Join the waitlist</button>
111112
</form>
112113
<p id="form-error" hidden>That didn't go through. Check the address and try again.</p>
113-
<p class="privacy">Your email is used only to tell you when Pro launches. No newsletter,
114-
no sharing, no analytics on this page. One line to delete it: reply "remove".</p>
114+
<p class="privacy">Your email is used only to tell you when Pro launches. Reply
115+
"remove" and it is deleted.</p>
115116
</div>
116117
</section>
117118

@@ -126,8 +127,8 @@ <h3>What is the license situation?</h3>
126127

127128
<h3>When does this ship?</h3>
128129
<p>The open source worker is live: <code>pip install django-ox</code>, with
129-
<a href="https://oxpull.github.io/django-ox/">documentation here</a>. Pro follows once
130-
the core has production miles on it. Waitlist email is the announcement channel.</p>
130+
<a href="https://oxpull.github.io/django-ox/">documentation here</a>. Pro follows as
131+
the core accumulates production miles. Waitlist email is the announcement channel.</p>
131132

132133
<h3>Who is behind it?</h3>
133134
<p>An independent software vendor with one product: this one. You will know who

0 commit comments

Comments
 (0)