问题标签 [flush]

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 投票
3 回答
26093 浏览

log4net - 有没有办法以可编程方式刷新 log4net 中的缓冲区

我将 log4net 与 AdoNetAppender 一起使用。似乎 AdoNetAppender 有一个Flush 方法。无论如何我可以从我的代码中调用它吗?

我正在尝试创建一个管理页面来查看数据库日志中的所有条目,并且我想使用 bufferSize=100(或更多)设置 log4net,然后我希望管理员能够单击管理员上的按钮页面强制 log4net 将缓冲的日志条目写入数据库(不关闭 log4net)。

那可能吗?

0 投票
1 回答
482 浏览

nhibernate - nHibernate 不加载第三级属性(不可刷新缓存)

我开始在基于 Sharepoint 的 ASP.NET 项目中将一些预先存在的 nHibernate 代码从急切加载和每个数据库命中的新会话切换到延迟加载和 HTTP 请求期间的会话,然后开始遇到问题。

当我们在这个系统中创建一个项目时,有一些由下拉列表填充的多对一关系。这为我们提供了 ID,这足以保存到数据库中。

为了执行一些保存后的任务,比如电子邮件通知,我们然后加载相同的项目,这之前会让我们填充整个对象树。

但是,自从更改为延迟加载和具有整个请求生命周期的会话以来,我们一直在从 Item 下面的属性中获取 NullReferenceExceptions,这些属性神秘地为空。

我们通过 nHibernate 将 item 加载到 changedItem 中。失败的电话是:

PaperMedia 已完全填充,但 FormsAnalyst 上的所有内容都为空,除了 ID。

这与我们保存它时的状态相同,因此导致此问题的一个可能原因是 Item 被缓存并简单地检索,因此 nHibernate 不知道数据库中的实际值。但是,我正在提交事务,并在保存和后续加载之间在会话上显式调用 Flush(),所以如果是这种情况,那么 Commit() 和 Flush() 都不会对缓存产生任何影响。

我已将相关 hbm.xml 文件中的这些属性更改为lazy="false",并为所有这些属性设置了 SetFetchMode FetchMode.Eager,但没有任何效果。

我也在考虑将 max_fetch_depth 作为问题。如果我在会话上调用 Refresh(changedItem),它没有效果。但是,如果我调用 Refresh(changedItem.PaperMedia),它将一直填充到 Name。这似乎将 max_fetch_depth 视为问题,但我仍然尝试增加它,将其设置为 hibernate.cfg.xml 中的 6 以及配置实例上的 SetProperty("max_fetch_depth", "6")在创建会话工厂时,这些也没有效果。

我不知道还能尝试什么。

以前有人见过这样的事情吗?我是 nHibernate 的新手,所以它可能很简单......

编辑:

看来缓存确实是问题所在。在会话实例上调用 Clear() 可修复此行为。

所以现在的问题变成了,为什么 Flush() 不会更新缓存的项目?这正是我认为它的目的。

0 投票
6 回答
4996 浏览

c - 从标准输入读取是否会刷新标准输出?

连接到终端时,stdout 是行缓冲的,但我记得在某处读过(至少从 stdin 读取)会自动刷新 stdout。我使用过的所有 C 实现都做到了这一点,但我现在在标准中找不到它。

它以这种方式工作确实有意义,否则代码如下:

需要额外的fflush(stdout);

那么标准输出是否保证在这里被刷新?

编辑:

正如一些回复所说,标准中似乎不能保证在我的示例中输出到 stdout 将出现在从 stdin 读取之前,但另一方面,这个意图在(我的免费草稿副本)中说明标准:

交互设备的输入和输出动态应按照 7.19.3 中的规定进行。这些要求的目的是尽快出现无缓冲或行缓冲的输出,以确保在程序等待输入之前实际出现提示消息。

(ISO/IEC 9899:TC2 委员会草案——2005 年 5 月 6 日,第 14 页)。

所以似乎没有保证,但无论如何它可能会在大多数实现中工作。(著名遗言...)

0 投票
1 回答
2225 浏览

spring - JPA 检测到可重入刷新

我对使用 spring 2.5 实现 jpa 的 openjpa 几乎没有问题。我的道法:

返回 org.springframework.dao.InvalidDataAccessApiUsageException:

//编辑 EntityManager 设置:

如何获得 EntityManage?在 da 类中:

怎么了?任何想法?

0 投票
3 回答
4170 浏览

python - 命名管道在 Python 中没有刷新

我有一个通过 os.mkfifo() 命令创建的命名管道。我有两个不同的 Python 进程访问这个命名管道,进程 A 正在读取,进程 B 正在写入。进程 A 使用 select 函数来确定 fifo/管道中何时有可用数据。尽管进程 B 在每次写入调用后都会刷新,但进程 A 的 select 函数并不总是返回(它会一直阻塞,就好像没有新数据一样)。在深入研究了这个问题之后,我最终只对进程 B 进行了编程,使其在我真正调用之前和之后添加 5KB 的垃圾写入,同样,进程 A 被编程为忽略这 5KB。现在一切正常,并且 select 总是适当地返回。我注意到如果进程 B 被杀死,进程 A 的 select 将返回(在写入和刷新之后,它会睡在读取管道上)。Python中的flush是否有命名管道的问题?

0 投票
4 回答
3824 浏览

java - 刷新标头后向Java中的响应添加cookie?

我有一个自定义标签,它进行一些处理,然后设置一个 cookie。但是,cookie 没有被设置,我不知道为什么。另一位开发人员指出,由于我们使用的是模板系统,即标签评估点,响应标头已经作为包含的一部分被刷新。由于已发送标头,因此看起来无法添加 cookie(但是,当我尝试这样做时,不会引发任何状态异常)。有没有解决的办法?这听起来可能是问题吗?

0 投票
1 回答
94 浏览

java - java如何发送信息?

告诉我。

当我调用 Socket.getOutputStream.write(); 时会发生什么 然后 Socket.getOutputStream.flush(); ? 因为当我想发送超过 8162 个字节时,它只发送可以放置在这个大小的字节。并且不发送下一个字节。

请解释一下。

0 投票
4 回答
4852 浏览

jquery - 浏览器何时开始呈现部分传输的 HTML?

我有一个长期运行的报告,并希望在生成时向用户显示等待微调器。我已经完成了这项工作,但不确定我是否以最好或正确的方式做这件事。

这是使用 ColdFusion,但我猜它可能是任何语言。在页面的顶部,我有一些显示等待微调器的 Javascript (jQuery),还有一个 documentReady 处理程序,我可以在其中取下微调器。我刷新输出(如果重要的话),然后其余代码处理报告内容。这从来没有渲染微调器,我推测,即使我在服务器上刷新东西,也会发生一些缓冲,直到为时已晚,浏览器才看到微调器代码。所以,我在刷新之前添加了一个循环,吐出几百行 HTML 注释。在微调了行数之后,就成功了。我当时认为其他网站也是如此。

但是:今天,当我看到我的另一个页面逐行吐出长时间运行的作业的状态时,我突然想到,该页面在每一行之后刷新,并且浏览器根据需要逐步呈现。这与我上面的结论不符,现在我不知道规则是什么。有没有可预测的方法来做到这一点?是否因浏览器而异?

澄清:我很欣赏试图解释执行等待微调器的正确方法的答案,但我只是使用等待微调器作为示例来说明我的真正问题:是否有可靠的方法来预测浏览器何时开始呈现HTML 因为它通过网络流式传输给他们?通过观察很明显,浏览器不会等待 /html 标签开始工作。这个问题不一定与 Javascript 有任何关系。例如,我描述的显示状态的第二页是纯 HTML。

0 投票
2 回答
9564 浏览

java - Java Socket OutputStream 未刷新

我正在用java编写一个基于套接字的服务器。客户端连接到它(网络浏览器),服务器发回一个简单的 html 代码并设置 cookie 以在客户端再次连接到它时识别。我正在使用 PrintStream 写入套接字,但刷新不起作用。我可以刷新的唯一方法是使用 shutdownoutput 或 close 并关闭套接字流。但我不希望这样,因为我在代码的几个地方多次读取/写入它。能做什么?无法从标签中获得任何帮助。我还尝试了其他缓冲写入器类,同样的问题。

0 投票
3 回答
9148 浏览

java - 使用 BufferedWriter 更新文本文件

我正在使用 BufferedWriter 写入文本文件,但 BufferedWriter 在我正在运行的程序完成之前不会写入文件,并且我不确定如何更新它,因为 BufferedWriter 应该正在写入。这是我的一些代码:

我确实刷新了 BufferedWriter,但在写入后仍然没有文件,而是在程序完成时。有什么建议么?