signals

Django post_save 在不覆盖模型 save() 的情况下防止递归

有许多关于使用post_save 信号进行递归的 Stack Overflow 帖子,其中 cmets 和答案绝大多数是:“为什么不覆盖 save()”或仅在 created == True 上触发的保存。 好吧,我认为不使用save() 是一个很好的例子——例如,我正在添加一个临时应用程序,它处理与我们的订单模型完全分开的订单履行数据。 框架的其余部分完全不知道履行应用程序,并且使用 pos... »

在系统调用期间捕获/阻塞 SIGINT

我编写了一个网络爬虫,我希望能够通过键盘停止它。我不希望程序在我中断时死掉;它需要先将其数据刷新到磁盘。我也不想抓住KeyboardInterruptedException,因为持久数据可能处于不一致的状态。 我目前的解决方案是定义一个信号处理程序来捕获SIGINT 并设置一个标志;主循环的每次迭代都会在处理下一个 url 之前检查这个标志。 但是,我发现如果系统恰好在我发送中断时正在执行so... »

接收未声明的 SIGALRM SIGSTP 错误消息,尽管我已包含

我正在练习信号。在编译代码时,我收到了未声明的 SIGALRM 和未声明的 SIGSTP 错误消息。 main.c:46:16: error: ‘SIGALARM’ undeclared (第一次在这个函数中使用) 信号(SIGALARM, (void (*)(int))sig_alarm); main.c:68:16: error: ‘SIGSTP’ undeclared... »

c

Python:如何防止子进程接收 CTRL-C / Control-C / SIGINT

我目前正在为在 shell 中运行的专用服务器开发一个包装器。包装器通过子进程生成服务器进程,并观察其输出并对其做出反应。 必须明确地给专用服务器一个正常关闭的命令。因此,CTRL-C 不能到达服务器进程。 如果我在 python 中捕获 KeyboardInterrupt 异常或覆盖 SIGINT 处理程序,服务器进程仍会收到 CTRL-C 并立即停止。 所以我的问题是: 如何防止子进程接... »

Qt:将基类方法带入派生类的槽中

我有一个派生自 QWidget 和模型类的类。根据我的阅读,我不能让模型类从 QObject 派生。 class PageWidget : public QWidget, public MyModelClass { ... }; 模型类MyModelClass已经有设置属性的方法,例如setWidth(bool)。看来我不能直接将这些方法用作插槽。如果我声明: QObjec... »

通过 id 访问 QML 插槽中的嵌套对象(从 c++ 调用)

我曾经有一个窗口的这种排列方式,其中有一个文本字段,并使用从 c++ 发出的数据进行更新: Window{ id: root function qmlSlot(a){ _textField1.text=a; } TextField{ id: _textField1 } } 绑定是这样的: QQuickWindow *window=qob... »

c++

访问在运行时生成的按钮的 click() 插槽 - Qt Creator

我在 Qt Creator 中有一个用作购物清单的 GUI 项目。我正在使用 QLineEdit 将项目添加到 QTableWidget。用户输入内容,按下 QPushButton。然后,该插槽在第一列中向 QTableWidget 添加一个新行,并在第二列中添加一个新的 QPushButton。然后我希望用户能够按下按钮并清除该行,但我不知道如何访问该插槽或发件人(我不确定正确的术语。)这是到目... »

c++

如何使函数异步信号安全?

我有以下sigaction处理函数 void signal_term_handler(int sig) { printf("EXIT :TERM signal Received!\n"); int rc = flock(pid_file, LOCK_UN | LOCK_NB); if(rc) { char *piderr = "PID file unloc... »

c++

如何告诉 django 不要在数据库中保存实例?

我在 django 1.6 中编写了这个信号接收器,旨在阻止已发布的包含坏词的 cmets 被保存数据库: @receiver(pre_save, sender= Comment) def spam_filter(sender, **kwargs): cmnt = kwargs['instance'] my_expression = '|'.join(re.escape(word... »

即使 SA_RESTART 标志设置为零,当 SIGINT 发生时,阻塞函数 accept() 也会重新启动

我正在 Linux 上编写一个 C 程序,其中我有一个 main() 和两个由它创建的 pthread。在其中一个 pthread 中,我调用了 accept() 函数。 我有一个在收到 SIGINT、SIGQUIT 或 SIGTERM 时调用的信号处理程序。 我的期望是,因为我将 SA_RESTART 标志设为零,所以当我按下 ctrl-c 时,accept() 函数应该返回 EINTR 而... »

c

获取是否收到信号

如果进程接收到信号,我如何获得?以下示例的目的是 fork 一个进程,用子进程读取一个字符并将 SIGUSR1 发送给父进程,但如果 10 秒后用户仍然需要插入该字符,则子进程终止。问题是如何知道是否收到了 SIGUSR1: #define _POSIX_SOURCE #include <stdio.h> #include <signal.h> #include &lt... »

c

试图在我的 shell 程序中实现警报。 C 信号处理

我正在用 C 语言构建自己的 shell。我想实现一个名为 alarm 的内置函数,它接受一个整数参数来表示秒数。内置只在 i 秒(一次)后向用户发送一条消息,但同时 shell 功能应该继续工作。 这是我目前所拥有的: int seconds; int main(int argc, char const *argv[], char* envp[]){ ... signal(SI... »

c

如何知道文件被打开了? QT

我想知道用户是否打开了文件以供阅读(双击或使用...打开),我正在 Windows 上使用 Qt Creator 编写 C++ 应用程序,经过一些研究我发现 QFileSystemWatche,但只有在特定文件夹中发生更改时它才会让我知道。 void QFileSystemWatcher::fileChanged ( const QString & path ) [信号] 当指定路径的... »

c++

通过信号更新用户名时出错

我想知道如何更新 Django 用户用户名。我正在使用默认的身份验证模型,与自定义 Profile 的关系为 OneToOne。 Profile 可以通过最终用户进行更新,并且已经设置了一个信号来监听更改并相应地更新。 即使用户名是乱码或根本没有更改,也会发生相同的错误,所以我不确定为什么违反了唯一约束。 # models class Profile(models.Model): c... »

为什么我无法捕捉到 SIGINT 信号?

美好的一天,我有下一个代码: server s; namespace signals_handler { //sig_atomic_t is_stop=0; void signal_handler(int sig) { if(sig==SIGHUP) { printf("recived :SIGHUP\n"); ... »

调用 quit() 后清理 QThread

我有问题。如果我调用 Abort(),运行函数将返回,而 complexMath 实例没有足够的时间进行清理。 我想要的是,在调用 Abort() 之后,complexMath 实例有足够的时间自行关闭,在返回之前清除所有待处理的信号和槽(在 complexMath 内部,它也有自己的信号和槽)。 void MyThread::Go(){ start(); } void MyThrea... »

如何从 django 向twisted 发送通知?

我的应用程序由一个twisted“后端服务器”和一个django“中间件”组成。扭曲的部分是collection of services 设置在.tac file 中以访问数据库,通过www 或xml 提供内容。 django 部分处理网站上与用户的所有交互。 twisted Web 服务将 django WSGI 应用程序实例化为我认为的 canonical way: # .../wsgi/... »