Last year I started to learn more about the uWSGI webserver for Python. This was when I realised that The uWSGI project has decorators which can be used in interesting ways. I thought It was neat because I mainly use uWSGI as a wsgi server for serving Flask websites and APIs. Since I found out about this I can now use it for more. Especially since I already have it among the dependencies for a lot of my projects. Here are some exampels of uWSGI decorators:
@filemon("my-notes/notes.txt") def file_has_been_modified(filename): print("notes.txt has been modified")
The @filemon decorator could be used as the bases for a simple monitoring tool, mabye triggering a backup, copying and minify an updated file or just printing a log message like the example above.
# positional arguments: minute, hour, day, month, weekday (-1 means no value) @cron(30, 5, -1, -1, -1) def run_that_daily_script(): calculate_daily_cost()
If you know about unix cron jobs this is basically it, but as a decorator on a python function. This example triggers the
calculate_daily_cost 5:30 each day
@signal(2) def my_signal(num): print("The process was interrupted)