Browse Source

Move away from gevent

Might not be that reliable
master
pictuga 2 weeks ago
parent
commit
5422d4e14c
  1. 2
      Dockerfile
  2. 8
      README.md
  3. 2
      docker-entry.sh
  4. 2
      setup.py

2
Dockerfile

@ -1,6 +1,6 @@
FROM alpine:latest
RUN apk add --no-cache python3 py3-pip py3-wheel git py3-lxml py3-gevent py3-zope-interface py3-zope-event
RUN apk add --no-cache python3 py3-pip py3-wheel git py3-lxml
ADD . /app
RUN pip3 install --no-cache-dir /app[full]

8
README.md

@ -109,9 +109,6 @@ packages:
- python3-pip
- python3-wheels
- python3-lxml
- python3-gevent
- python3-zope.interface
- python3-zope.event
- git
- ca-certificates
@ -125,7 +122,7 @@ write_files:
runcmd:
- update-ca-certificates
- pip install git+https://git.pictuga.com/pictuga/morss.git#egg=morss[full]
- gunicorn --bind 0.0.0.0:${PORT:-8000} --workers ${WORKERS:-4} --worker-class=gevent --preload --access-logfile - morss
- gunicorn --bind 0.0.0.0:${PORT:-8000} --workers ${WORKERS:-4} --threads ${THREADS:-4} --preload --access-logfile - morss
```
## Run
@ -393,7 +390,8 @@ debugging.
- `IGNORE_SSL=1`: to ignore SSL certs when fetch feeds and articles
- `DELAY` (seconds) sets the browser cache delay, only for HTTP clients
- `TIMEOUT` (seconds) sets the HTTP timeout when fetching rss feeds and articles
- `WORKERS` (number) sets the number of gunicorn workers to use
- `WORKERS` and `THREADS` (number) sets the number of gunicorn workers and
threads to use
When parsing long feeds, with a lot of items (100+), morss might take a lot of
time to parse it, or might even run into a memory overflow on some shared

2
docker-entry.sh

@ -4,7 +4,7 @@ if [ "$1" = "sh" ] || [ "$1" = "bash" ]; then
exec $@
elif [ -z "$1" ] || [ "$@" = "run" ]; then
gunicorn --bind 0.0.0.0:${PORT:-8000} --workers ${WORKERS:-4} --worker-class=gevent --preload --access-logfile - morss
gunicorn --bind 0.0.0.0:${PORT:-8000} --workers ${WORKERS:-4} --threads ${THREADS:-4} --preload --access-logfile - morss
else
morss $@

2
setup.py

@ -14,7 +14,7 @@ setup(
license = 'AGPL v3',
packages = [package_name],
install_requires = ['lxml', 'bs4', 'python-dateutil', 'chardet'],
extras_require = {'full': ['pymysql', 'redis', 'diskcache', 'gunicorn', 'gevent']},
extras_require = {'full': ['pymysql', 'redis', 'diskcache', 'gunicorn']},
package_data = {package_name: ['feedify.ini']},
data_files = [
('share/' + package_name, ['README.md', 'LICENSE']),

Loading…
Cancel
Save