标签: flush

有关在调用查询之前使用JPA进行刷新的问题

只是一个简单的问题,但是这段代码中需要刷新吗?请注意,这将在JPA事务中.

User user = new User();
em.persist(user);

em.flush;

User aUser = em.find(User.class,user.getId());
assert(user.equals(aUser));
Run Code Online (Sandbox Code Playgroud)

或者没有冲洗它会工作吗?

User user = new User();
em.persist(user);

User aUser = em.find(User.class,user.getId());
assert(user.equals(aUser));
Run Code Online (Sandbox Code Playgroud)

或者相同的问题,但更多涉及的例子:

User user = em.find(User.class,id);
user.setName("My Name");
em.merge(user);

em.flush; //Is this line needed?

User aUser = em.createQuery("select u from User where u.name = 'My Name');
assert(user.equals(aUser));
Run Code Online (Sandbox Code Playgroud)

java jpa transactions flush

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

如何刷新Java串行InputStream?

我正在使用JavaComm,并从串口对象获取inputStream.我有一个问题,有时当系统启动时,缓冲区中存在我不想要的噪声字符.我想初始化串口然后在开始处理之前以某种方式刷新所有数据的输入.

有没有办法做到这一点?

TY弗雷德

java serial-port flush

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

c#串口刷新小数据块

我正在使用以下内容编写一个包含两个字节的小字节数组:

int bytes_to_write = 2;
port.Write(byte_buffer, buffer_offset, bytes_to_write);
Run Code Online (Sandbox Code Playgroud)

在将其写入端口之前,似乎底层库正在等待更多数据通过.这是正确的行为,我可以强制它立即写小块吗?一些论坛说使用:

port.BaseStream.Flush(); 
Run Code Online (Sandbox Code Playgroud)

将导致正确的行为,但其他人说这不起作用.我已经进行了几次测试,但它似乎对我不起作用.

干杯,理查德

c# serial-port flush

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

autoflush问题

我在一段代码中找到了类似的东西:

use IO::Handle;
autoflush STDOUT 1;
print '';
Run Code Online (Sandbox Code Playgroud)

"打印"的目的是清空可能填充的缓冲区吗?

perl buffer flush

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

NSOutputStream刷新

我正在开发iPhone应用程序并希望使用:

CFStreamCreatePairWithSocketToHost(NULL, url, port, &serverReadStream, &serverWriteStream);
Run Code Online (Sandbox Code Playgroud)

之后使用:

[serverWriteStream write:[sendData bytes] maxLength:[sendData length]];
Run Code Online (Sandbox Code Playgroud)

我想发送5个字节的小包以获得实时更新.

我现在的问题是,流只在缓冲区已满时才发送数据.所以我需要某种刷新方法或告诉流立即发送数据.

搜索这个问题最终发现'TCP_NODELAY'似乎属于未记录的API(我不能用于AppStore,如果我错了请纠正我),即使我可能被允许使用它,我也必须改变流的创建,对吧?

flush nsstream

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

有没有办法将Linux管道设置为非缓冲或行缓冲?

我的程序在Linux上控制外部应用程序,通过管道将输入命令传递到外部应用程序stdin,并通过外部应用程序stdout的管道读取输出结果.

问题是对管道的写入是按块缓冲的,而不是按行缓冲的,因此在我的应用程序接收外部应用程序输出数据之前会发生延迟.无法更改外部应用程序以添加显式fflush()调用.

当我将外部应用程序设置为/ bin/cat -n(它回显输入,添加了行号)时,它正常工作,看起来,在每行之后刷新.强制外部应用程序刷新的唯一方法是向它发送exit命令; 当它收到命令时,它会刷新,所有答案都会在退出之前出现在标准输出上.

我很确定,Unix管道对于那种进程间通信(伪服务器 - 客户端)来说是合适的解决方案,但也许我错了.

(我刚刚从一个类似的问题中复制了一些文本:使用Python强制另一个程序的标准输出无缓冲)

c linux pipe flush

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

另一个"在链配置的命名空间中找不到类'X'

当我坚持我的实体时,我收到此错误

另一个"在链配置的命名空间中找不到类'X'

在我将Symfony从Windows移动到Linux之前,这曾经工作过.

我的控制器:

public function SubscriptionHandlingAction(Request $request)
{

        if ($request->isMethod('POST')) 
        {

            $form = $this->createForm(new NewCustomer(), new Customer());
            $form->bind($request);

            if ($form->isValid()) 
            {

                // get the form data 
                $newcustomer = $form->getData();                    

                //get the date and set it in the entity
                $datecreation = new \DateTime(date('d-m-Y'));                     
                $newcustomer->setdatecreation($datecreation);

                //this works fine
                echo $newcustomer->getname();

                //persist the data
                $em = $this->getDoctrine()->getManager();
                $em->persist($newcustomer);
                $em->flush();


                return $this->render('NRtworksSubscriptionBundle:Subscription:subscription_success.html.twig');  

            }
Run Code Online (Sandbox Code Playgroud)

当然,我的类实体存在,因为我可以基于它创建表单,对象等.但是,这个实体不是"映射"意味着教义:mapping:info不给我任何东西(但是我手动创建了相应的sdl表并放入所有注释):

<?php

namespace NRtworks\SubscriptionBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;


/**
 * @ORM\Entity
 * @ORM\Table(name="Customer")
 */
class Customer …
Run Code Online (Sandbox Code Playgroud)

flush persist symfony doctrine-orm

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

交错cout和cin操作是否需要显式刷新?

我注意到在许多源代码文件中,人们可以看到coutcin 没有显式刷新的情况下在写入之前写入:

#include <iostream>
using std::cin; using std::cout;

int main() {
    int a, b;
    cout << "Please enter a number: ";
    cin >> a;
    cout << "Another nomber: ";
    cin >> b;
}
Run Code Online (Sandbox Code Playgroud)

执行此操作时,用户输入的42[Enter]73[Enter]内容很好(g ++ 4.6,Ubuntu):

Please enter a number: 42
Another number: 73
Run Code Online (Sandbox Code Playgroud)

这是定义的行为,即标准是否说coutcin读取之前以某种方式刷新了?我可以在所有符合要求的系统上预期这种行为吗?

或者应该在这些消息后明确说明cout << flush

c++ iostream flush stream

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

仅手动冲洗cout

据我所知,std::endl流入std::cout将刷新它.我认为这种行为对大多数应用程序都有意义.

我的问题是我有一些输出使用多个输出,std::endl因此刷新输出.这对于我的程序的性能来说真的很糟糕,并且因为我跳得很多而导致很多图形故障.

所以我的问题是,如果我可以告诉std::cout等待下一次刷新,直到我明确地调用std::cout.flush()std::flush流入std::cout.
如果这是可能的,我也想知道我怎么能扭转它,因为它对我来说并不总是有意义.

c++ cout flush stream

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

在SinkTask中完成"put"后,立即使用Kafka Connect HOWTO"提交偏移量"

我正在使用Kafka Connect从Kafka Broker(v0.10.2)获取消息,然后将其同步到下游服务.

目前我有代码SinkTask#put处理,SinkRecord然后将其持久保存到下游服务.

几个关键要求,

  1. 我们需要确保消息持久保存到下游服务ATLEAST一次.
  2. 如果下游服务抛出错误或说它没有处理消息,那么我们需要确保再次重新读取消息.

因此,我们认为我们可以依赖于SinkTask#flush有效地退出为接收消息的特定轮询/周期提交偏移.通过抛出一个异常或者某个东西来告诉Connect不提交偏移量,但是在下次轮询中重试.

但正如我们发现的那样flush,实际上是基于时间的,并且或多或少地独立于民意调查之外,它会在达到特定时间阈值时提交抵消.

在0.10.2 SinkTask#preCommit中引入,所以我们认为我们可以将它用于我们的目的.但是在文档中没有提到SinkTask#put&之间存在1:1的关系SinkTask#preCommit.

因为基本上我们想commit offsets尽快一个put succeeds.同样地,如果特定失败,则不提交偏移量put.

如果没有通过,如何实现这一目标SinkTask#preCommit

flush offset apache-kafka apache-kafka-connect

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