Articles of señales de

temporizador de python misterio

Bueno, al menos un misterio para mí. Considera lo siguiente: import time import signal def catcher(signum, _): print “beat!” signal.signal(signal.SIGALRM, catcher) signal.setitimer(signal.ITIMER_REAL, 2, 2) while True: time.sleep(5) Funciona como se espera, es decir, ofrece un “ritmo”! mensaje cada 2 segundos. A continuación, no se produce ninguna salida: import time import signal def catcher(signum, _): print […]

¿Cómo capturo SIGINT en Python en Windows?

(Similar a esta pregunta ) En UNIX bajo Python 2.7, en el indicador de Python: >>> import signal >>> def handler(signal, frame): … print ‘welcome to the handler’ … >>> signal.signal(signal.SIGINT, handler) Presiono ctrl-c >>> welcome to the handler >>> En Windows: >>> import signal >>> def handler(signal, frame): … print ‘welcome to the handler’ […]

¿Cómo puedo anular la interrupción del teclado? (Pitón)

¿Hay alguna forma de hacer que mi script ejecute una de mis funciones cuando se Ctrl+c cuando se ejecuta el script?

Ahorro de trabajo después de un SIGINT

Tengo un progtwig que lleva mucho tiempo en completarse. Me gustaría poder capturar SIGINT (ctrl-c) y llamar al método self.save_work() . Tal como está, mi signal_hander() no funciona ya que self no está definido en el momento en que el progtwig llega a signal_handler() . ¿Cómo puedo configurarlo para que se self.save_work después de un […]

¿Es la asignación de variables de Python atómica?

Digamos que estoy usando un manejador de signal para manejar un temporizador de intervalos. def _aHandler(signum, _): global SomeGlobalVariable SomeGlobalVariable=True ¿Puedo configurar SomeGlobalVariable sin preocuparme de que, en un escenario improbable que al configurar SomeGlobalVariable (es decir, la máquina virtual de Python estaba ejecutando un bytecode para establecer la variable), la asignación dentro del controlador […]

Captura / locking de SIGINT durante una llamada al sistema

He escrito un rastreador web que me gustaría poder detener a través del teclado. No quiero que el progtwig muera cuando lo interrumpa; primero necesita descargar sus datos al disco. Tampoco quiero capturar KeyboardInterruptedException , porque los datos persistentes podrían estar en un estado incoherente. Mi solución actual es definir un manejador de señales que […]

Manejadores de señal y registro en Python.

La documentación para el módulo de registro dice que Si está implementando manejadores de señales asíncronos utilizando el módulo de señales, es posible que no pueda usar el registro desde dichos manejadores. Esto se debe a que las implementaciones de locking en el módulo de subprocesamiento no siempre son reingresantes, por lo que no pueden […]

addHow para hacer que la señal django post_save se ejecute solo durante la creación

Estoy usando django-notifications en mi proyecto y quiero notificar a un usuario en particular cada vez que se crea un modelo usando la señal, pero post_save también se ejecuta cuando se actualiza un modelo. ¿Cómo puedo evitar esto y hacer que solo se ejecute el método post_save? cuando se crea un modelo. modelos.py class Card(models.Model): […]

Accediendo a la solicitud del usuario en una señal post_save

He hecho la siguiente señal de post_save en mi proyecto. from django.db.models.signals import post_save from django.contrib.auth.models import User # CORE – SIGNALS # Core Signals will operate based on post def after_save_handler_attr_audit_obj(sender, **kwargs): print User.get_profile() if hasattr(kwargs[‘instance’], ‘audit_obj’): if kwargs[‘created’]: kwargs[‘instance’].audit_obj.create(operation=”INSERT”, operation_by=**USER.ID**).save() else: kwargs[‘instance’].audit_obj.create(operation=”UPDATE”).save() # Connect the handler with the post save signal – Django […]

¿Cómo puedo enviar una señal desde un progtwig de python?

Tengo este código que escucha las señales USR1. import signal import os import time def receive_signal(signum, stack): print ‘Received:’, signum signal.signal(signal.SIGUSR1, receive_signal) signal.signal(signal.SIGUSR2, receive_signal) print ‘My PID is:’, os.getpid() while True: print ‘Waiting…’ time.sleep(3) Esto funciona cuando envío señales con kill -USR1 pid Pero, ¿cómo puedo enviar la misma señal desde el script de python […]