问题标签 [lwt]
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.
multithreading - 取消 Lwt。线
我一辈子都找不到处理取消lwt线程的方法。
这是我所拥有的,简化的。
您可以看到我多次尝试捕获 Canceled 异常,但均无效。我的输出是
在更宏大的计划中,我有一个unit Lwt.t list ref
,它是用 创建的Lwt.task
,然后我计划在List.iter Lwt.cancel
列表上做,然后用类型的新线程替换它unit Lwt.t
cassandra - 当我们使用 IF NOT EXIST 时,LWT-Light Weight Transaction 是如何工作的?
问题是,当我们使用
在IF NOT EXIST中,哪些列被比较在一起?主键(分区键 + 集群键)?还是只是分区键?
ocaml - OCaml: Lwt and non blocking socket
I wanted to try the Lwt_unix
module for a simple client that reads data in a socket until there is nothing to read. Some told me that Lwt
create non blocking sockets but with my code, it is still blocking:
If I try this example with in a term:
then the result is :
Which block until I hit Ctrl+c.
I have tried both with :
and
and of course without this line, but it is still blocking. What am I doing wrong?
For more informations, one of my previous question : OCaml non-blocking client socket
ocaml - Lwt 2.7.0 类型错误
我用 Lwt 2.7.0 编写了这段代码:
我得到了这个错误(在最后一行,即 sock
):
好吧,是的,sock
是 type Lwt_unix.file_descr
,为什么编译器会抛出这个程序并强制 type 'a Lwt.t
?(当我问找到什么类型时,create_socket
它告诉我它的类型unit -> '_a
)
PS:感谢 Daniil Baturin:http ://baturin.org/code/lwt-counter-server/
cassandra - Cassandra LWT ReadTimeoutException 或 WriteTimeoutException
我试图在同一个表中插入两个进程。因此,首先我尝试使用 LWT 输入分区和集群键值,如果成功,则意味着该进程可以在该时间桶内继续该工作,否则另一个进程已经完成该桶。LWT 设置为一致性级别 One 和串行一致性级别 LOCAL_SERIAL。
如果第一个插入成功,则工作完成,另一个插入也完成,一致性级别也为 1。第一条语句有一个 TTL 语句,用于执行工作的进程在中间终止的情况,该行在 TTL 为 90 之后将为空。
即使我运行单个进程,LWT 也会因读取或写入超时异常而失败。
这是准备好的声明和我得到的例外。任何帮助表示赞赏。
ocaml - 多次调用 Lwt_process.pread_lines
我正在尝试使用 Lwt_process.pread_lines 来获取一些命令的输出。在我的 Lwt_main.run 中,我调用它一次,然后通过运行良好的 Lwt_stream.map 开始分别处理每一行输出。
但是,在那个处理中,如果我调用另一个 Lwt_process.pread_lines,它似乎被忽略了:
我不明白,我什至没有例外。我已经尝试过 pread_line 和 pread_lines,看起来 >>= 之后的任何内容都被忽略了。如果我使用 |> 虽然它会被调用,但我当然需要使用输出。
我已经阅读了文档,并查看了 Lwt_process 的来源,但我没有看到任何表明您不能随意调用它的任何信息,它似乎为每个进程创建了一个新管道,至少在输出上。当然,我的外部进程根本不使用标准输入,它只是对 df 命令的调用。我错过了什么吗?
我应该清楚:它没有挂起,程序确实完成得很好。它只是从不调用任何试图使用后面命令的结果的东西,第一个工作正常。
谢谢
ocaml - ^C 进程正在执行 Lwt 读取
我正在开发一个使用Lwt_ioLwt_io.read_into_exactly
和其他功能的小程序。这一切都很好,但是^C (sigint) 没有做任何事情,这迫使我每次测试它时都要杀死 -9,这有点烦人。
我应该做些什么来让它被^C正常杀死,也许将套接字设置为非阻塞或什么?
谢谢 !
cassandra - LWT and Consisteny in Cassandra
It seems to be the bug for me,
1) I created a keyspace with replication factor as '3'
#xA;NOTE: This is a single node cluster, still I kept the replication factor as 3, so that I will add new nodes to the cluster later
2) I set the consistency level as ONE
#xA;3) I created a 'testtable'
#xA;4) Now I tried simple INSERT query
#xA;THIS IS WORKING AS EXPECTED Since the consistency LEVEL is ONE
5) Now I tried INSERT query with LWT (IF NOT EXISTS)
#xA;NOW IT FAILED WITH NoHostAvailable: ERROR
Could someone explain how to fix this ? How to execute this LWT with consistency as 1 ?
cassandra - Cassandra 轻量级事务失败
有 2 个 DC,每个有 3 个节点,用于写入的 RF 为 2,读取其 each_quorum。轻量级事务用于确保跨 DC 更新的一致性。现在发生的情况是,对于某些记录,数百(可能数千)的 lwt 更新大约在同一时间到达集群。正在发生的事情是,所有这些更新都以“操作超时 - 仅收到 0 个响应”而失败,甚至一次尝试都无法更改该记录的状态并使其其他所有人都失败。理想情况下,第一次尝试通过更新并更改值会更好,这样后续的 lwt 更新将不会通过,因为 lwt 值不满足。有什么办法可以做到这一点?
尝试增加 cas_contention 超时,但这无济于事,除了让所有事务在失败前等待更长时间。使用了“本地一致性”,这使 lwt 运行得更快,但这对我们的情况没有帮助,因为我们希望在两个 DC 上保持强一致性。有什么选择吗?