code: def runjobs_by_signals(self, when, options):
          
          # Thanks for Ian Holsman for the idea and code
          from django_extensions.management import signals
          from django.conf import settings
  
          verbosity = options["verbosity"]
          for app_name in settings.INSTALLED_APPS:
              try:
                  __import__(app_name + '.management', '', '', [''])
              except ImportError:
                  pass
  
          for app in (app.models_module for app in apps.get_app_configs() if app.models_module):
              if verbosity > 1:
                  app_name = '.'.join(app.__name__.rsplit('.')[:-1])
                  print("Sending %s job signal for: %s" % (when, app_name))
              if when == 'minutely':
                  signals.run_minutely_jobs.send(sender=app, app=app)
              elif when == 'quarter_hourly':
                  signals.run_quarter_hourly_jobs.send(sender=app, app=app)
              elif when == 'hourly':
                  signals.run_hourly_jobs.send(sender=app, app=app)
              elif when == 'daily':
                  signals.run_daily_jobs.send(sender=app, app=app)
              elif when == 'weekly':
                  signals.run_weekly_jobs.send(sender=app, app=app)
              elif when == 'monthly':
                  signals.run_monthly_jobs.send(sender=app, app=app)
              elif when == 'yearly':
                  signals.run_yearly_jobs.send(sender=app, app=app)
docs: Run jobs from the signals