标签: flush

Grails:.save(flush:flush,insert:true)的做法与.save不同(flush:true)

在Spring安全生成的类中(UserRole或者SecUserSecRole你可以随意调用它),有一个命令来制作new UserRole()并保存它.save(flush:flush, insert:true)

那是什么意思?它与.save(flush:true)的不同之处是什么?

grails insert flush save spring-security

4
推荐指数
1
解决办法
5682
查看次数

如何手动冲洗升压日志?

我正在使用Boost.Log中的boost 1.54.0来查看它是否适用于我的应用程序.一般来说,我没有缓冲问题,所以我不打算打开auto_flush或其他任何东西......但是我注意到在我调用之前记录的消息fork()是重复的,我想知道它是否是因为它们是缓冲的,所以在复制过程映像时缓冲区会被复制,然后两个进程最终将它们的缓冲区副本写入日志文件......

所以基本上,我只想在我打电话之前在日志上做一次手动刷新,fork()以确保没有消息仍然在内存中.换句话说,我正在寻找一个类似于fflush(),.flush(),<< flush等我可以在升压日志使用.

我确实尝试使用<< flush日志,但我仍然得到重复的消息,所以我不是100%确定它是否正在刷新并且重复是由其他一些问题引起的,或者它是否以某种方式默默地忽略了<< flush...

编辑:

我环顾四周,发现升压日志不是叉安全的.所以我应该补充一点,我不是想在父进程和子进程中使用相同的日志.我有两个分叉场景 - 在一个,父母立即终止和孩子contineus(这应该是安全的),而在另一个,孩子应该打开自己的单独的日志文件,所以这应该是安全的...但我需要弄清楚如何关闭日志文件接收器,然后打开一个新文件(在不同的文件上).我想关闭水槽也可能是一种强制冲洗的方法......?

c++ boost flush boost-logging boost-log

4
推荐指数
2
解决办法
6776
查看次数

C#刷新StreamWriter和一个MemoryStream

我使用下面的代码片段,我不确定是否需要调用Flush方法(一旦打开StreamWriter,一次打开MemoryStream):

    //converts an xsd object to the corresponding xml string, using the UTF8 encoding
    public string Serialize(T t)
    {
        using (var memoryStream = new MemoryStream())
        {
            var encoding = new UTF8Encoding(false);

            using (var writer = new StreamWriter(memoryStream, encoding))
            {
                var serializer = new XmlSerializer(typeof (T));
                serializer.Serialize(writer, t);
                writer.Flush();
            }

            memoryStream.Flush();

            return encoding.GetString(memoryStream.ToArray());
        }
    }
Run Code Online (Sandbox Code Playgroud)

首先,因为代码在using块内,我认为自动调用dispose方法可能会为我做这个.这是真的,还是正在形成一个完全不同的概念?

根据stackoverflow本身:

Flush意思清除流的所有缓冲区,并使任何缓冲的数据写入底层设备.

在上面的代码中,这意味着什么?

其次,MemoryStream 根据api,flush的方法没有任何作用,那么具体是什么呢?为什么我们称之为无效的方法?

c# flush

4
推荐指数
1
解决办法
7782
查看次数

sys.stdout.flush()在python循环中无法正常工作

我有这个代码:

sys.stdout.write("\r [*] Serching for "+FirstName+" AND "+LastName )
sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)

但是当我把它放在循环中时,我一步一步地将FirstName与对方混合在一起,并将LastName与对方混合在一起.

Searching for TEST_THREE AND EXAMPLE_THREE   #First time
Searching for TEST_TWOEE AND EXAMPLE_TWOEE   #Next time 
Run Code Online (Sandbox Code Playgroud)

你看还有EETHREETWO...

我该如何解决?

python stdout flush

4
推荐指数
1
解决办法
2290
查看次数

ob_implicit_flush(),flush(),ob_flush() - 不在远程服务器上工作

如果我从XAMPP上的本地服务器加载此脚本的chrome:

header("Content-Type:text/plain");

set_time_limit(0);

$max = 40;
for ($i = 0; $i < $max; $i++) {
    $response = array(  'server time: ' . date("h:i:s", time()), 'progress' => round($i/$max*100));
    echo json_encode($response);
    ob_flush();
    flush();
    sleep(1);
}
ob_clean();
Run Code Online (Sandbox Code Playgroud)

它按预期工作,每秒页面显示一个新的响应.但是,当我将其上传到我的远程服务器(运行相同版本的php)时,它会等到整个脚本完成后再显示输出.在非常长的脚本上,它每30-60秒左右更新一次输出.

正如标题所示,我尝试使用所有不同的刷新功能,但没有任何作用.我的本地服务器和远程服务器的php.ini可能有些不同,但我不知道是什么.

请帮忙.

- -编辑 - -

我一直在做更多的测试.我注意到它确实只更新每4096个字节,这恰好是我的远程服务器的'output_buffering'的php ini值.但是,出于某种原因,如果我将output_buffering更改为"1"或"关闭",则不会发生任何变化.它仍然只更新每4096个字节.

我正在同一浏览器上的不同服务器上测试2个相同的脚本.

php flush long-polling

4
推荐指数
2
解决办法
3705
查看次数

如何在 Java 中清除控制台 - Eclipse

如何在 Eclipse 中执行/打印一些语句后清除控制台。我已经使用了flush()但没有工作。只是发布示例代码。

System.out.println("execute ");
System.out.println("these set of lines ");
System.out.println("first");

Thread.sleep(2000); // just to see the printed statements in the console
System.out.flush(); // it is not clearing the above statements
Run Code Online (Sandbox Code Playgroud)

java eclipse console flush

4
推荐指数
1
解决办法
7万
查看次数

IntelliJ Idea调试/运行控制台; System.out.flush没有刷新

在过去的几天里,这一直困扰着我,因为它曾经工作过.我升级了我的intellij,现在它不起作用.我不想回去,但我需要一个答案.

所以,我正在编写一个控制台应用程序,当它运行时,我想要显示进度的shell.它正常工作时,它的运行,但是当我在的IntelliJ IDEA调试我,除非缓冲区包含一个换行符System.out.flush()将不刷新到控制台.我编写了以下单元测试,以确定它是我还是我的应用程序.

@Test
public void flushTest() {
    int loops = 100;
    for (int i = 0 ; i < 100 ; ++i) {
        System.out.print("This is a print, does it flush : " + i + "\r");
        if (i %10 == 0) {
            System.out.print("\n");
        }
        System.out.flush();
    }
}
Run Code Online (Sandbox Code Playgroud)

扰流板,它是应用程序.我不知道发生了什么变化,但是如果没有在命令行上进行完整构建和运行,就很难调试显示问题.如果有人可以帮我弄清楚为什么这会改变和/或帮助我修复它所以它会正确地冲洗,我会非常感激.

java console flush intellij-idea

4
推荐指数
1
解决办法
1226
查看次数

如何丢弃原始套接字中的传入数据包?

我正在Linux下编写一个C/C++应用程序,它从原始套接字读取数据(用于ICMP数据包).问题:有没有办法丢弃仍然在套接字上排队的所有数据?

问题是睡了一会儿之后,插座上排队的数据我不感兴趣; 所以最好只告诉套接字"忘记你现在缓冲的所有数据",这样如果我进入select()/ recvfrom()循环,那么我只得到最近收到的数据.

有没有比先进入单独的poll()/ recvfrom()循环更好的方法?有些socket API调用可能吗?便携式,甚至?:-)

sockets linux flush raw-sockets

3
推荐指数
1
解决办法
5330
查看次数

打印出os.popen()的输出而不在python中进行缓冲

假设我有一个进程打印出一些类似于这个ruby代码的数据.

1.upto(10) { 
  |i| 
  puts i 
  puts "\n" 
  sleep 0.6 
} 
Run Code Online (Sandbox Code Playgroud)

我想要一个生成此过程的python代码,并从中读取数据以将其打印出来.

import os 
import sys 
cmd = "ruby /Users/smcho/Desktop/testit.rb"; 
pingaling = os.popen(cmd,"r") 
while 1: 
    line = pingaling.readline() 
    if not line: break 
    print line, 
    sys.stdout.flush() 
pingaling.close() 
Run Code Online (Sandbox Code Playgroud)

这段代码的问题在于它不会逐个打印数字.似乎python在最后一点打印出所有缓冲的数据.

有没有办法打印出没有缓冲的衍生过程的输出?

ruby python flush popen

3
推荐指数
1
解决办法
4659
查看次数

这是刷新C输入流的正确方法吗?

好吧,我一直在google上搜索很多关于如何正确刷新输入流的问题.我听到的只是关于如何为输入流定义fflush()的混合论点,有些人说只是这样做,而其他人只是说不要这样做,我没有太多运气找到明确的效率/这样做的正确方法,大多数人都同意..我在编程方面很陌生,所以我还不知道该语言的所有语法/技巧,所以我的问题是哪种方式是最有效/最合适的解决方案清除C输入流??

  1. getchar()在我尝试接收更多输入之前使用两次?

  2. 只需fflush()在输入上使用该功能?要么

  3. 这就是我认为我应该这样做的方式.

    void clearInputBuf(void);  
    void clearInputBuf(void) 
    { 
          int garbageCollector; 
          while ((garbageCollector = getchar()) != '\n' && garbageCollector != EOF) 
          {}
    }
    
    Run Code Online (Sandbox Code Playgroud)

因此,每当我需要读取一个新的scanf(),或者使用getchar()来暂停程序时,我只需要调用clearInputBuf ..那么这三种解决方案中最好的方法是什么?还是有更好的选择?

c flush fflush

3
推荐指数
2
解决办法
1815
查看次数