问题标签 [resource-cleanup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
21018 浏览

c++ - 对象应该在 C++ 中删除自己吗?

我在 C# 中度过了过去 4 年,因此我对 C++ 中当前的最佳实践和常见设计模式很感兴趣。考虑以下部分示例:

在这里,我们有一个负责管理一组对象并定期更新它们的世界。火是一个可以在许多不同情况下添加到世界的对象,但通常是由世界上已经存在的另一个对象添加的。火是唯一知道它何时烧毁的对象,所以目前我让它自行删除。造成火灾的物体可能不再存在或不再相关。

这是明智的做法还是有更好的设计可以帮助清理这些物体?

0 投票
4 回答
4272 浏览

c# - 在c#中拦截应用程序关闭

我想正确关闭一些套接字,并能够告诉服务器我们正在关闭,但如果应用程序关闭,那么套接字都刚刚关闭,有时文件被锁定。我的应用程序关闭时如何运行方法?

这将进入一个将在表单应用程序中使用的库。

0 投票
7 回答
22122 浏览

php - 如何解决 PHP 中缺少 finally 块的问题?

5.5 版之前的 PHP 没有 finally 块 - 即,在大多数明智的语言中,您可以这样做:

PHP 没有 finally 块的概念。

任何人都有解决语言中这个相当恼人的漏洞的经验吗?

0 投票
2 回答
256 浏览

resource-cleanup - 网站内容清理工具?

我正在与客户合作,将网站从现有的生产硬件迁移到新的硬件环境中。现在似乎是执行审核并删除任何旧的或过时的内容而不是盲目地再次复制它的绝佳时机。

有没有什么好的免费工具或脚本可以用来比较服务器上的 Web 可访问内容与服务器上的实际文件,以查看实际链接和使用的内容是什么?

提前感谢您的帮助!

0 投票
4 回答
8678 浏览

python - Python 的 Popen 清理

我想使用一个相当于在 perl 中管道一些 shell 命令的 python。类似于 python 版本的 open(PIPE, "command |")。

我转到子流程模块并尝试以下操作:

这适用于读取输出的方式与我在 perl 中的方式相同,但它不会自行清理。当我退出解释器时,我得到

在 stderr 上喷了几百万次。我想我曾天真地希望这一切都会为我处理好,但事实并非如此。在 p 上调用 terminate 或 kill 似乎没有帮助。查看进程表,我看到这会杀死 /bin/sh 进程,但将子 gzip 留在原地抱怨管道损坏。

这样做的正确方法是什么?

0 投票
1 回答
973 浏览

.net - activeX (COM) 控件在被父级关闭时进行清理的正确方法是什么?

我的 .net 控件在打包以供 activeX 使用时没有得到正确清理时遇到问题。

默认行为使 SDK 的测试容器应用程序 (TstCon32.exe) 在我尝试关闭它时作为无 GUI 进程运行。

我最初通过谷歌找到的解决方法是覆盖 WndProc 并Environment.Exit(0)手动调用。这确实让 TstCon32.exe 完全关闭;但是它破坏了我需要托管控件的应用程序。

该应用程序是 MDI 并且当包含控件的页面关闭时正在发送 WM_DESTROY,此时Environment.Exit(0)调用正在吹走整个应用程序。我已经尝试过Application.Exit()作为替代方案,但这使得 TstCon32 仍然不可见地运行。

0 投票
1 回答
59 浏览

ruby-on-rails-3 - 关于清理废弃草稿附件的 Rails 后端工作流程的建议?

我正在开发一个 Rails 应用程序。我的两个模型是笔记和附件。用户可以创建笔记并向它们添加附件。这是标准的东西,我已经可以正常工作了。

目前,用户必须先创建注释,然后才能添加附件。我希望为用户实现更简化的工作流程,类似于熟悉的电子邮件工作流程,您可以在其中将附件添加到未保存的电子邮件中。但是,关键是我不希望用户在添加附件之前甚至必须保存便笺草稿,并且我希望在用户导航离开时放弃此未保存的便笺(我不希望具有未保存/未发布的笔记的额外复杂性)。

我知道当笔记最初尚未保存时,我可以创建没有笔记链接的附件,然后在保存笔记时建立链接。我在空白处绘制的部分是如果用户中断笔记创建过程,我如何删除未使用的附件?是否有一个我缺少的钩子可以让我看到用户中断了?

如果没有这样的钩子,想到的第一个解决方案是通过 cron 运行的夜间清理脚本,该脚本将找到所有未附加的附件并将其删除(可能通过 24 小时前创建的附件进行过滤)。这是最好的解决方案吗?

0 投票
2 回答
441 浏览

mysql - 在 MySQL 中使用 0..1:1..n 表进行 SQL 自动清理

我正在编写一个应用程序,它要求所有用户使用 MySQL 访问中央数据库上的数据,我想知道一些事情。

假设我有这个设置。

现在,我希望这种设置的方式是,表 A 必须始终被表 B 中的一行引用。但是,表 B 中的一行可能引用也可能不引用表 A 中的一行。其中的关系是 1:n表 B 中的多行可以引用表 A 中的单行。我只是想知道如果表 B 中的任何行不再引用 A 中的一行,MySQL 数据库是否可以自动删除该行。

这里的想法是我可以简单地将表 B 中的 a_id 设置为 NULL 并让数据库清理剩下的任何内容。我想这类似于 Java 垃圾收集现在我想到它。如果没有自动执行约束的键,更新后执行的触发器会起作用吗?

编辑:添加额外的关系约束。

0 投票
4 回答
732 浏览

python - 使用 __del__ 将状态保存在文件中进行清理?

我有一个看起来像这样的类:

现在,这是在一个服务器程序中,所以它可能会在没有事先通知的情况下被信号关闭。如果可能的话,定义它以确保类保存它的信息是否安全?

如果没有,您会建议什么作为解决方案?

0 投票
1 回答
402 浏览

.net - 如何在新的 MVVMLight V4 中释放资源

我想知道在新的 MVVM-Light V4 的 ViewModelLocator 中清理资源的最佳方法是什么。据我所知,在版本 3 之前,方法ViewModelLocator.Cleanup()调用了其余视图模型的Cleanup()方法。

在版本 4 中,新的 ViewModel 模板不包括 Cleanup() 方法,也不会在添加到ViewModelLocator时生成它们。正如我在其他与 V3 相关的类似问题中看到的,V4 计划集中清洁资源,那么如何实现呢?

谢谢你。

埃迪