问题标签 [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.
php - 循环内的PHP sleep()不更新数据库
我有一个 cronjob 每分钟触发的 php 文件。
当 php 文件被触发时,它会更新数据库、休眠等
它是这样编程的:
如果运行这段代码,我看不到数据库中发生任何变化。我注意到的另一件事是当我回显某些内容时,我会在循环结束时打印出来。
[编辑] 我尝试使用 flush 和 ob_flush,但它仍然没有为 line 打印 line[/edit]
我能做些什么来避免这些错误。数据库需要更新。
我想知道的另一件事是最好的方法是记录这种事情。我可以将结果记录到日志文件中吗?
c++ - 确保在外部进程中创建文件时刷新文件(Win32)
关于将文件活动刷新到磁盘的 Windows Win32 C++ 问题。
我有一个外部应用程序(使用 CreateProcess 运行)来创建一些文件。即,当它返回时,它将创建一个包含一些内容的文件。
在继续之前,如何确保进程创建的文件确实刷新到磁盘?
我的意思不是 C++ 缓冲区,而是真正刷新磁盘(例如 FlushFileBuffers)。
请记住,我无权访问任何文件 HANDLE - 这当然隐藏在外部进程中。
我想我可以打开我自己的文件句柄,然后使用 FlushFileBuffers,但不清楚这是否可行(因为我的句柄实际上不包含任何需要刷新的东西)。
最后,我希望它在非管理员用户空间中运行,因此我不能在整个卷上使用 FlushFileBuffers。
有任何想法吗?
更新:为什么我认为这是一个问题?
我正在开发数据备份应用程序。本质上,它必须按照描述创建一些文件。然后它必须更新它的内部数据库(使用 SQLite 嵌入式数据库)。
我最近遇到了蓝屏期间发生的数据损坏问题(其原因与我的应用程序无关)。
我关心的是系统崩溃期间的应用程序完整性。是的,我确实关心这一点,因为这个应用程序是一个数据备份应用程序。
我关心的用例是这样的:
- 使用外部进程创建一个小数据文件。此写入在 OS 缓存中等待写入磁盘。
- 我更新数据库并提交。这是磁盘活动。此写入也在 OS 缓存中等待。
- 发生系统故障。
在我看来,我们现在处于潜在的竞争状态。如果“1”被刷新而“2”没有被刷新,那么我们很好(因为数据库事务没有被提交)。如果两者都没有被刷新或都被刷新,那么我们也可以。
据我了解,写入将是不确定的。即,我不知道操作系统会保证在“2”之前写“1”。(我错了吗?)
所以,如果“2”被刷新,但“1”没有被刷新,那么我们就有问题了。
我观察到数据库已正确更新,但文件中有垃圾:最后三分之二的数据是二进制“零”。现在,我不知道当您在蓝屏时刷新文件部分时会是什么样子,但如果它看起来像这样,我不会感到惊讶。
我可以保证这是原因吗?不,我不能保证这一点。我只是在猜测。可能只是由于磁盘故障或蓝屏导致文件“自然”损坏。
关于性能,这是我相信我可以处理的事情。
例如,SQLite 的默认行为是在每次提交事务时执行完整文件刷新(使用 FlushFileBuffers)。他们很清楚,如果您不这样做,那么在系统崩溃时,您的数据库可能已损坏。
另外,我相信我可以通过仅在“检查点”刷新来减轻性能影响。例如,写入 50 个文件,刷新批次,然后写入数据库。
这一切成为问题的可能性有多大?打败我。但是,我的应用程序很可能会在系统故障时或前后存档,因此您可能更可能认为。
希望这能解释为什么我不想这样做。
javascript - 我可以使用 Javascript 在 Firefox 中刷新事件堆栈吗?
我的 HTML 中有一个标签层次结构,它们都包含onclick
事件处理程序。从叶子返回到层次结构的根,将其onclick
推入事件堆栈。我只想响应叶子onclick
事件。我可以刷新事件堆栈而不是使用标志吗?
例如:
使用此功能单击 2.2...
...将导致“2.2”和“2”两个警报。
我可以在 nada 函数中添加什么来消除“2”的警报?
java - DataOutputStream 不刷新
我有一个将 UTF-8 字符串发送到 C# TCP 服务器的 Java 客户端,我正在使用 DataOutputStream 发送字符串。代码如下所示:
问题是冲洗似乎无法正常工作。如果我发送两个彼此靠近的字符串,服务器只会收到一条包含两个字符串的消息。如果我在调用之间执行 Thread.sleep(1000) ,那么整个事情都有效,这显然不是一个解决方案。我错过了什么?
wcf - 有没有办法按需刷新 WCF 跟踪?
就像有一个刷新 IIS7 日志的命令一样:
我想知道是否有类似的命令可以按需刷新 WCF 跟踪日志。
c# - 了解 Streams 及其生命周期(Flush、Dispose、Close)
注意:我已经阅读了以下两个问题:
我正在用 C# 编码
- 在几乎所有使用流的代码示例中,几乎总是调用 .Dispose()、.Flush()、.Close()。
- 在流的概念中,完成了什么?
- 如果我不处理存储在变量中的流,我的应用程序是否在某处泄漏?
- 为什么我需要调用这些函数中的任何一个?我见过不这样做但仍然可以完成工作的代码示例(没有明显的破损)
我目前正在我的应用程序中构建一个类,该类包含一个主要方法(让我们调用它GetStream()
),该方法通过以下方式返回一个流myWebRequest.GetResponse().GetResponseStream()
主要方法GetStream()
返回一个Stream
对象,该对象可用于任何需要流的操作(StreamReader、Bitmap() 等)。
有没有办法让流在最后一次使用后自动处理(垃圾收集?)而不强迫任何调用.GetStream()
手动处理它的人?
正如您可能知道的那样,我的问题是模糊和笼统的。我对流的理解并不扎实,因此任何指向有用文章的链接,这些文章提供了比 SO 问题所能提供的更深入的流,我们将不胜感激。
nhibernate - NHibernate:在为插入操作调用刷新时接收超出范围的索引
在使用 NHibernate 时,我花了大部分时间尝试解决此消息:“索引超出范围。必须为非负数且小于集合的大小。参数名称:索引”
我的更新和删除工作正常,但在调用 save() 后调用刷新不起作用。我认为发布所有代码(有很多)没有用,因为我不确定您此时需要看到什么。如果有帮助,我尝试保存的数据访问对象使用复合键。另外,我正在使用 NHibernate.Mapping.Attributes 创建我的映射。
在我的堆栈跟踪中,NHibernate 似乎试图将无效数量的参数发送到 ADO.Net 类以进行插入操作。话虽如此,我已将跟踪设置为 true 以查看 sql 语句,但在将 sql 语句发送到输出之前引发了错误,因此我不确定它试图构建什么。
在 System.Collections.ArrayList.get_Item(Int32 index) 在 IBM.Data.DB2.iSeries.iDB2ParameterCollection.System.Collections.IList.get_Item(Int32 index) 在 NHibernate.Type.DecimalType.Set(IDbCommand st, Object value, Int32 index) 在 NHibernate.Type.NullableType.NullSafeSet(IDbCommand cmd, Object value, Int32 index) 在 NHibernate.Type.NullableType.NullSafeSet(IDbCommand st, Object value, Int32 index, ISessionImplementor session) 在 NHibernate.Type.ComponentType.NullSafeSet( IDbCommand st,对象值,Int32 开始,ISessionImplementor 会话)在 NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate(对象 id,Object[] 字段,对象 rowId,Boolean[] includeProperty,Boolean[][] includeColumns,Int32 表,IDbCommand语句,ISessionImplementor 会话,Int32 索引)在 NHibernate.Persister。NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields,对象 obj,ISessionImplementor 会话)在 NHibernate.Engine.ActionQueue.Execute(IExecutable 可执行文件)在 NHibernate.Engine.ActionQueue.ExecuteActions(IList 列表)在 NHibernate.Engine.ActionQueue.ExecuteActions()的 NHibernate.Action.EntityInsertAction.Execute()在 NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session) 在 NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent 事件) 在 NHibernate.Impl.SessionImpl.Flush() 在 WTS.Data.DB2.CGC.ProddataRepository.Insert (ProddataDAO 实体)在 C 中:\Documents and Settings\briant\My Documents\Visual Studio 2008\Projects\WTSCGCDAL\WTSCGCDAL\ProddataRepository.cs:C:\Documents and Settings\briant\My Documents\Visual 中 WTS.WTSCGCAppInterface.ProductionDataUserControlBase.TestInsert() 的第 73 行Studio 2008\Projects\WTSCGCAppInterface\WTSCGCAppInterface\ProductionDataUserControlBase.cs:在 C:\Documents and Settings\briant\My Documents\Visual Studio 2008\Projects\WTSCGCAppInterface\WTSCGCAppInterface.Window1.Button_Click_1(Object sender, RoutedEventArgs e) 的第 483 行\Window1.xaml.cs:System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) 的第 48 行,System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) 的 System.Windows.UIElement。RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) 在 System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) 在 System.Windows.Controls.Primitives.ButtonBase.OnClick() 在 System.Windows.Controls.Button.OnClick() 在 System.Windows .Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) 在 System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e) 在 System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) 在 System.Windows.RoutedEventArgs .InvokeHandler(Delegate handler, Object target) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args,Boolean reRaised) at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) at System.Windows.UIElement.CrackMouseButtonEventAndReRaiseEvent(DependencyObject sender, MouseButtonEventArgs e) at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) ) 在 System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) 在 System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) 在 System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) 在 System System.Windows.UIElement.RaiseEventImpl(DependencyObject 发件人,System.Windows.Input.InputManager.ProcessStagingArea() 在 System.Windows.Input.InputManager.ProcessInput(InputEventArgs 输入) 在 System.Windows.Input 的 System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trust) .InputProviderSite.ReportInput(InputReport inputReport) 在 System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode 模式, Int32 时间戳, RawMouseActions 操作, Int32 x, Int32 y, Int32 wheel) 在 System.Windows.Interop.HwndMouseInputProvider.FilterMessage (IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& 处理) 在 System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& 处理) 在 MS.Win32.HwndWrapper.WndProc (IntPtr hwnd,Int32 消息,IntPtr wParam, IntPtr lParam, Boolean&handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) at System.Windows.Threading.ExceptionWrapper。 TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) at System.Windows.Threading.Dispatcher.InvokeImpl (DispatcherPriority 优先级,TimeSpan 超时,委托方法,对象参数,布尔 isSingleParameter)在 MS.Win32 的 System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority 优先级,委托方法,对象参数)。HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) 在 System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) 在 System.Windows.Threading.Dispatcher 在 MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) .PushFrame(DispatcherFrame 框架)
在 System.Windows.Threading.Dispatcher.Run() 在 System.Windows.Application.RunDispatcher(Object ignore) 在 System.Windows.Application.RunInternal(Window window) 在 System.Windows.Application.Run(Window window) 在 System .Windows.Application.Run() at WTSCGCAppInterface.App.Main() 在 C:\Documents and Settings\briant\My Documents\Visual Studio 2008\Projects\WTSCGCAppInterface\WTSCGCAppInterface\obj\Debug\App.g.cs:line 0 在 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) 在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading .ThreadHelper.ThreadStart_Context(对象状态)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 在 System.Threading.ThreadHelper.ThreadStart()
c - 在没有 read() 的情况下清空或“刷新”文件描述符?
(注意:这不是如何刷新 a 的问题write()
。可以这么说,这是它的另一端。)
是否可以清空包含要读取的数据的文件描述符而不必这样read()
做?您可能对数据不感兴趣,因此阅读所有数据会浪费您可能有更好用途的空间和周期。
如果在 POSIX 中不可能,是否有任何操作系统有任何不可移植的方法来做到这一点?
更新:请注意,我说的是文件描述符,而不是流。
asp.net-mvc - 刷新和压缩过滤器 (ASP.NET MVC)
我们有非常通用的代码,运行良好:
现在我正在尝试用它Response.Flush()
来传递部分页面,以改善用户体验。在这种情况下,response.Filter
每次写入操作修改时,很明显需要立即交付页面。如何让我的应用程序写入中间流,然后压缩它,然后推送到Response.Filter
?
hibernate - 为什么休眠 session.close() 不会自动刷新数据?
当hibernate关闭一个会话时,关闭的目的基本上是关闭底层连接和清理一级缓存。为什么刷新也不会在这里自动发生?