12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/bin/bash
- #--------------------------------------------------------------------#
- # Find all currently unprocessed tasks by searching the celeryd
- # log file.
- #
- # Please note that this will also include tasks that raised an exception,
- # or is just under active processing (will finish soon).
- #
- # Usage:
- #
- # # Using default log file /var/log/celeryd.log
- # $ bash find-unprocessed-tasks.sh
- #
- # # Using a custom logfile
- # # bash find-unprocessed-tasks.sh ./celeryd.log
- #
- #--------------------------------------------------------------------#
- DEFAULT_LOGFILE=/var/log/celeryd.log
- export CELERYD_LOGFILE=${1:-$DEFAULT_LOGFILE}
- get_start_date_by_task_id() {
- task_id="$1"
- grep 'Received task:' $CELERYD_LOGFILE | \
- grep "$task_id" | \
- perl -nle'
- /^\[(.+?): INFO/; print $1' | \
- sed 's/\s*$//'
- }
- get_end_date_by_task_id() {
- task_id="$1"
- grep processed $CELERYD_LOGFILE | \
- grep "$task_id" | \
- perl -nle'
- /^\[(.+?): INFO/; print $1 ' | \
- sed 's/\s*$//'
- }
- get_all_task_ids() {
- grep 'Received task:' $CELERYD_LOGFILE | \
- perl -nle'/Received task:.+?\[(.+?)\]/; print($1)'
- }
- search_logs_for_task_id() {
- grep "$task_id" $CELERYD_LOGFILE
- }
- report_unprocessed_task() {
- task_id="$1"
- date_start="$2"
- cat <<EOFTEXT
- "---------------------------------------------------------------------------------"
- | UNFINISHED TASK: $task_id [$date_start]
- "---------------------------------------------------------------------------------"
- Related logs:
- EOFTEXT
- search_logs_for_task_id "$task_id"
- }
- for task_id in $(get_all_task_ids); do
- date_start=$(get_start_date_by_task_id "$task_id")
- date_end=$(get_end_date_by_task_id "$task_id")
- if [ -z "$date_end" ]; then
- report_unprocessed_task "$task_id" "$date_start"
- fi
- done
|