Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
protokollsystem
proto3
Commits
3a97b73f
Commit
3a97b73f
authored
Mar 04, 2017
by
Administrator
Browse files
initialize the uwsgi spooler such that it is actually called
parent
b0b4aa81
Changes
1
Hide whitespace changes
Inline
Side-by-side
server.py
View file @
3a97b73f
...
...
@@ -81,7 +81,7 @@ def import_legacy():
import_old_todos
(
content
)
import_old_protocols
(
content
)
import_old_todomails
(
content
)
# cause uwsgi currently has a bug
def
send_file
(
file_like
,
cache_timeout
,
as_attachment
,
attachment_filename
):
mimetype
,
_
=
mimetypes
.
guess_type
(
attachment_filename
)
...
...
@@ -1221,46 +1221,49 @@ def logout():
flash
(
"You are not logged in."
,
"alert-error"
)
return
redirect
(
url_for
(
".index"
))
print
(
"making scheduler"
)
def
make_scheduler
():
try
:
from
uwsgidecorators
import
timer
as
uwsgitimer
,
signal
as
uwsgisignal
,
cron
as
uwsgicron
print
(
"using uwsgi for cron-like tasks"
)
@
uwsgicron
(
30
,
-
1
,
-
1
,
-
1
,
-
1
,
target
=
"mule"
)
def
uwsgi_timer
(
signum
):
if
signum
==
0
:
check_and_send_reminders
()
except
ImportError
:
pass
try
:
from
uwsgidecorators
import
timer
as
uwsgitimer
,
signal
as
uwsgisignal
,
cron
as
uwsgicron
print
(
"using uwsgi for cron-like tasks"
)
@
uwsgicron
(
30
,
-
1
,
-
1
,
-
1
,
-
1
,
target
=
"mule"
)
def
uwsgi_timer
(
signum
):
if
signum
==
0
:
check_and_send_reminders
()
except
ImportError
as
exc
:
def
make_scheduler
():
print
(
exc
)
print
(
"uwsgi not found, falling back to apscheduler for cron-like tasks"
)
def
make_scheduler
(
app
,
config
,
function
):
scheduler
=
BackgroundScheduler
()
scheduler
.
start
()
scheduler
.
add_job
(
func
=
function
,
trigger
=
CronTrigger
(
hour
=
'*'
,
minute
=
30
),
id
=
"scheduler"
,
name
=
"Do an action regularly"
,
replace_existing
=
True
)
atexit
.
register
(
scheduler
.
shutdown
)
def
check_and_send_reminders
():
print
(
"check and send reminders"
)
if
not
config
.
MAIL_ACTIVE
:
return
with
app
.
app_context
():
current_time
=
datetime
.
now
()
current_day
=
current_time
.
date
()
print
(
"regular action for reminders"
)
for
protocol
in
Protocol
.
query
.
filter
(
Protocol
.
done
==
False
).
all
():
day_difference
=
(
protocol
.
date
-
current_day
).
days
usual_time
=
protocol
.
protocoltype
.
usual_time
protocol_time
=
datetime
(
1
,
1
,
1
,
usual_time
.
hour
,
usual_time
.
minute
)
hour_difference
=
(
protocol_time
-
current_time
).
seconds
//
3600
print
(
"diff: {} days, {} hours"
.
format
(
day_difference
,
hour_difference
))
for
reminder
in
protocol
.
protocoltype
.
reminders
:
print
(
reminder
)
if
day_difference
==
reminder
.
days_before
and
hour_difference
==
0
:
print
(
"reminder matching, sending"
)
tasks
.
send_reminder
(
reminder
,
protocol
)
scheduler
=
BackgroundScheduler
()
scheduler
.
start
()
scheduler
.
add_job
(
func
=
check_and_send_reminders
,
trigger
=
CronTrigger
(
hour
=
'*'
,
minute
=
30
),
id
=
"scheduler"
,
name
=
"Do an action regularly"
,
replace_existing
=
True
)
atexit
.
register
(
scheduler
.
shutdown
)
def
check_and_send_reminders
():
print
(
"check and send reminders"
)
if
not
config
.
MAIL_ACTIVE
:
return
with
app
.
app_context
():
current_time
=
datetime
.
now
()
current_day
=
current_time
.
date
()
print
(
"regular action for reminders"
)
for
protocol
in
Protocol
.
query
.
filter
(
Protocol
.
done
==
False
).
all
():
day_difference
=
(
protocol
.
date
-
current_day
).
days
usual_time
=
protocol
.
protocoltype
.
usual_time
protocol_time
=
datetime
(
1
,
1
,
1
,
usual_time
.
hour
,
usual_time
.
minute
)
hour_difference
=
(
protocol_time
-
current_time
).
seconds
//
3600
print
(
"diff: {} days, {} hours"
.
format
(
day_difference
,
hour_difference
))
for
reminder
in
protocol
.
protocoltype
.
reminders
:
print
(
reminder
)
if
day_difference
==
reminder
.
days_before
and
hour_difference
==
0
:
print
(
"reminder matching, sending"
)
tasks
.
send_reminder
(
reminder
,
protocol
)
if
__name__
==
"__main__"
:
make_scheduler
()
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment