In preparation for another command I'd like to make I've first got to
make a place where Invites live.
There's probably other parts of the code that interact with Invites that
I've missed, but this is a good start at least.
It used to handle the initial failure differently than internal failure.
Now I've moved the outside bits inside, so it can run again when it
encounters an unknown character.
Wrap every blather handler in sentry setup and exception capturing so each route
doesn't have to handle it seperately.
panic is a last resort, usually better to return an XMPP error and report/log,
so default to that.
Also wraps each handler in a span. Note that for multistage command handlers
this span is too long and they will want to call finish/set_span internally.
da80d0c
Throttle notification processing to prevent starvation
Stephen Paul Weber
created
d0569f4
Do not catchup low-balance notifications for expired customers
Click to expand commit body
Makes the number of users to do on startup much smaller and slower-growing.
Expired users have been told about their low balance quite a bit already, and
will be notified by billing cronjob etc from here out.
Stephen Paul Weber
created
07aca05
Optional alternate transcription with rev.ai
Click to expand commit body
The bitfield bit 1 was used by a different project (sgx-catapult, see:
https://gitlab.com/ossguy/sgx-catapult/-/commit/459d7d1dfe208db1708f1d648b82b38c002ad35a).
This other project no longer uses the bit, and in fact that whole project is
dead and gone, but if you previously ran that project against the same redis
that you now run this project against then please make sure you have zeroed-out
that bit first.
You can verify using this script:
redis = Redis.new
redis.keys("catapult_settings_flags-*").each do |k|
p redis.getbit(k, 1)
end
Stephen Paul Weber
created
ab95e3b
Bad XML parser produces hash for one element, array for >1