Skip to main content

No project description provided

Project description

django-commands

documentation

PyPI - Version PyPI - Python Version


Table of Contents

Installation

  1. pip install
pip install django-commands2
  1. add django_commands to INSTALLED_APPS, and logging
INSTALLED_APPS = [
    ...
    'django_commands',
]
LOGGING = {
    "loggers": {
        "django_commands": {
            ...your custom level, handles config...
        }
    }
}
DJANGO_COMMANDS_ALLOW_REMOTE_CALL = [
    "slow_command",  # add slow_command if you want to run unittest
    <your command>
]
  1. add url config like if you want to enable call command by request:
path('api/django-commands/', include("django_commands.urls")),

Call Command from url

import requests
requests.post("/api/django-commands/call-command", {"command": "slow_command"})

Usage

AutoLogCommands

any exception will be logged in the autologcommand

<yourapp/management/commands/command_name.py>
from django_commands import AutoLogCommand


class Command(AutoLogCommand):

    def handle(self):
        <write your code, any exception will be logged>

MultiTimesCommand

MultiTimesCommand will run multi times according to INTERVAL and MAX_TIMES. You can easily use this command to realize a crontab job every 1 second.

class Command(MultiTimesCommand):
    INTERVAL = 1  # default 1
    MAX_TIMES = 60  # default 60

    def handle(self):
        <this handle function will run 60 times>

This command does not consider the running time of your code. It will just run 60 times, and during each execute, wait 1 second

DurationCommand(AutoLogCommand):

DurationCommand will run your commands over and over again until the running time exceed the configuration

import datetime

class Commmand(DurationCommand):
    INTERVAL = 1
    DURATION = datetime.timedelta(minutes=1)

    def handle(self, *args, **kwargs):
        <your code>

UniqueCommand

UniqueCommand can assert that only one command instance is running

How it works? Every time the command executes:

  1. it will create a django_commands.models.CommandLog instance
  2. it will check if there is another Command Instance pending with the same UNIQUE_NAME
import time
from django_commands.commands import UniqueCommand

class Command(UniqueCommand):
    def handle(self):
        print("I'm running. In the next 5 seconds, you cannot execute this command. It will exist directly")
        time.sleep(5)
        print("I'm running")
        raise Exception("even error occurs, this task will be set finished")

License

django-commands is distributed under the terms of the ONLY USE NO PRIVATE CHANGE LICENSE license.

Anyone can use pip install django-commands to use this project by any meaning as long as you keep the source code unchanged.
You are not allowed to change the source code without publishing your change.
Here publishing means you: fork this project from github and keep your change available to public on the github

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_commands2-1.0.0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_commands2-1.0.0-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file django_commands2-1.0.0.tar.gz.

File metadata

  • Download URL: django_commands2-1.0.0.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.14.3 HTTPX/0.28.1

File hashes

Hashes for django_commands2-1.0.0.tar.gz
Algorithm Hash digest
SHA256 48b457d24c853d479bd38a64ac4f2ea509a2e2c872ca183f02b3d2a401d9308e
MD5 b48ed794c2a7c95abdef8587236501a0
BLAKE2b-256 c6d897d07f79e05a56615db40fb7083c44e72bcce932dc81be8a0ea42a77f418

See more details on using hashes here.

File details

Details for the file django_commands2-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: django_commands2-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 18.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.14.3 HTTPX/0.28.1

File hashes

Hashes for django_commands2-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f33ce16b838dbbef1d5eddb512083bc5d484f176106ccc8b941653930387eac3
MD5 25d4b8af78ab5b284fbc396579fe42e3
BLAKE2b-256 b10f316d11d02d18cee56b2e44a6409841dea2b1452aa9e9ef9fb9abbc047364

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page