Move away from gevent
continuous-integration/drone/push Build is failing Details

Might not be that reliable
master
pictuga 2021-11-25 21:21:59 +01:00
parent 1837eda25f
commit 5422d4e14c
4 changed files with 6 additions and 8 deletions

View File

@ -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]

View File

@ -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 100644 → 100755
View File

@ -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 $@

View File

@ -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']),