问题标签 [routines]

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 投票
0 回答
75 浏览

sql-server - SQL Server 自动启动例程

标题几乎说明了一切:我想在 MS SQL Server 中自动启动一个例程。更准确地说,我有一个应该每天运行的例程(在特定条件下从表中删除数据),但我不希望应用程序必须触发这个例程。

SQL Server 中是否有支持这种行为的功能?

0 投票
1 回答
268 浏览

dialogflow-es - 将 Dialogflow/Action/Assistant 添加到例程中

我正在尝试将DialogFlow 应用程序Google 助手(Google 上的操作)集成进行编程。我需要的是在特定时间内在选定的 Google Home 设备上定期执行我的脚本——我设法通过Routines做到了这一点。

不幸的是,Routines 的设置并不像我想象的那么容易(您需要通过几次单击和输入自定义操作名称)。然后我发现可以在助手中询问用户(例行建议),让他用更少的必要步骤进行设置。

但我的实现不起作用:

因为我正在使用WebhookClient我无法conv.arguments.get('UPDATE_INTENT')像示例中那样调用。但是我可以通过实现来获得那部分代码,这会导致错误:

是否有人已经使用 Dialogflow 实施了常规建议

0 投票
1 回答
41 浏览

c# - 我有一个合作例程,一旦选择就会播放。但是,如果我再次选择它,则不会发生任何事情。但是它确实第一次起作用

我有一个合作例程,一旦选择就会播放。co 例程将对象放大。它选择的第二个它缩小了对象。

但是,如果我再次选择它,则不会发生任何事情。但是,它确实第一次起作用。

我有一个合作例程,一旦选择就会播放。co 例程将对象放大。它选择的第二个它缩小了对象。

但是,如果我再次选择它,则不会发生任何事情。但是,它确实第一次起作用。

0 投票
3 回答
1892 浏览

go - 使用 timer.Reset() 的计时器示例未按描述工作

我一直在处理试图让我的第一个“goroutine”运行的示例,当我让它运行时,它不会按照 go 文档中的 timer.Reset() 函数的规定工作。

就我而言,我相信我这样做的方式很好,因为我实际上并不关心 chan 缓冲区中的内容,如果有的话。case <-tmr.C:所有这一切都是为了在发生任何事情时触发case _, ok := <-watcher.Events:,然后一切都会安静至少一秒钟。这样做的原因是case _, ok := <-watcher.Events:可以从一到几十个事件相隔微秒,我只关心它们都完成并且事情再次安定下来。

但是,我担心按照文档中说的“必须做”的方式去做是行不通的。如果我知道 go 更好,我会说文档有缺陷,因为它假设缓冲区中有一些东西可能没有,但我不知道 go 足够好来有信心做出这个决定,所以我希望一些专家出来那里可以启发我。

下面是代码。我没有把它放在操场上,因为我必须做一些清理工作(删除对程序其他部分的调用),而且我不确定如何让它对文件系统更改做出反应以显示它工作。

我已经在代码中清楚地标记了哪些替代方法有效,哪些无效。

0 投票
1 回答
129 浏览

raku - 为什么默认的 Raku if/while/loop/when 块都具有相同的标识值 (.WHICH)?

除了我声明签名的块之外,所有块都具有相同的标识值,并且无论它们出现在哪里都声称在第 1 行声明。任何人都可以阐明为什么会这样吗?

0 投票
1 回答
57 浏览

c# - c# - 将大列表拆分为较小的子列表

对 C# 相当陌生 - 坐在这里练习。我在一个文件中列出了一个包含 1000 万个密码的文件,我下载了该文件进行练习。

我想将文件分解为 99 个列表。在 99 处停止然后做点什么。然后从它停止的地方开始,并用下一个 99 重复做某事,直到它到达文件中的最后一项。

我可以很好地完成计数部分,它是在 99 处停止并继续我离开的地方是我遇到麻烦的地方。我在网上找到的任何东西都不接近我想要做的事情,我自己添加到这个代码中的任何东西都不起作用。

如果我不清楚,我很乐意分享更多信息。只是询问并会回复,但我可能要到明天才能回复,具体取决于时间。

这是我开始的代码:

我的最终目标是使用我拥有的文件中的任何项目列表来执行此操作。我只使用这个密码列表,因为它很大,并且认为它对这个练习有好处。

谢谢基思

0 投票
2 回答
1837 浏览

go - Go 例程后关闭冗余 sql.Rows 对象的推荐方法

我正在使用 Go 例程将查询并行发送到 PostgreSQL 主节点和从节点。返回有效结果的第一个主机获胜。错误案例不在此问题的范围内。

调用者是唯一关心*sql.Rows对象内容的人,所以我的函数故意不对这些内容进行任何操作。我使用缓冲通道从 Go 例程中检索返回对象,因此应该没有 Go 例程泄漏。垃圾收集应该照顾其余的。

有一个问题我没有正确解决:留在通道中的 Rows 对象永远不会关闭。当我从(只读)事务中调用此函数时,tx.Rollback()为每个非关闭Rows对象实例返回一个错误:"unexpected command tag SELECT".

从更高级别的对象调用此函数:

执行器可以是*sql.DB*sql.Tx或者任何符合接口的东西:

回滚逻辑:

MultiTx是多个节点上开放交易的集合。它是一个更高级别的对象,它调用multiQuery

“清理”未使用的行的最佳方法是什么?我正在考虑不做的选项:

  1. cancel()取消上下文:我相信它会不一致地工作,在调用时可能已经返回了多个查询
  2. 创建一个延迟的 Go 例程,该例程继续耗尽通道并关闭行对象:如果 DB 节点响应缓慢,Rollback()仍会在之前调用rows.Close()
  3. 在 MultiTx 类型中的某处使用 a sync.WaitGroup,可能与 (2) 结合使用:如果其中一个节点无响应,这可能会导致 Rollback 挂起。另外,我不确定我将如何实现它。
  4. 忽略回滚错误:忽略错误听起来从来都不是一个好主意,它们的存在是有原因的。

解决此问题的推荐方法是什么?

编辑:

正如@Peter 所建议的那样,我尝试取消上下文,但这似乎也使查询中返回的所有行无效。在rows.Scancontext canceled在更高级别的调用者处遇到错误。

这是我到目前为止所做的:

编辑2:

@Adrian 提到:

我们看不到实际使用这些的代码。

此代码由类型方法重用。首先是交易类型。这个问题的问题出现在上面的Rollback()方法上。

然后是:

这些方法是函数周围的公共包装器multiQuery()。现在我意识到只是将其发送*Rows到缓冲通道中死,实际上是内存泄漏。在交易案例中,它变得很清楚,因为Rollback()开始抱怨。但是在非事务变体中,通道内部永远不会被垃圾收集,因为驱动程序可能会在调用*Rows之前持有对它的引用。rows.Close()

我已经编写了这个包,供 ORM sqlboiler使用。我的更高级别的逻辑将一个MultiTX对象传递给 ORM。从那时起,我对返回的Rows. 一种简单的方法是我的更高级别的代码取消了之前的上下文Rollback(),但我不喜欢这样:

  1. 它提供了一个非直观的 API。这种(惯用的)方法会破坏:
  1. ORM 的接口还指定了常规的、非上下文感知的Query()变体,在我的包的情况下,它将针对context.Background().

我开始担心这会被设计破坏...无论如何,我将首先实现一个 Go 例程,该例程将耗尽通道并关闭*Rows. 之后我会看看我是否可以实现一些不会影响返回的合理等待/取消机制*Rows

0 投票
1 回答
35 浏览

python - 关于矩阵对角化的 Python 例程

早上好!我对 python 例程有疑问: https ://www.google.com/url?sa=t&source=web&rct=j&url=https://docs.scipy.org/doc/scipy-0.14.0/reference/生成/scipy.sparse.linalg.eigsh.html&ved=2ahUKEwjJxrid8ezoAhXj6eAKHQbzBCwQFjAAegQIARB&usg=AOvVaw29YNiM2xotOUio89RVOe_x&cshid=1587038068544

它说它计算了 k 个特征向量和特征值,其中 k 小于矩阵维数,但是是否可以使用它来获得最低的 k 个特征值,或者这些特征值是否在频谱中随机排序?

0 投票
1 回答
662 浏览

go - 将 rate.NewLimiter 速率限制器与通道一起使用

我正在使用速率限制器来限制路由的请求数量

请求被发送到一个频道,我想限制每秒处理的数量,但我很难理解我是否设置正确,我没有收到错误,但我不确定我是否我什至在使用速率限制器

这是添加到频道的内容:

这是通道和限制器:

项目被添加到频道:

然后使用 goroutine 处理添加到通道中的所有内容:

有人可以确认发生以下情况:

  • execItem 函数在通道的每个成员上每秒运行 4 次

我不明白“err := itemThrottler.Wait(context.Background())”在代码中做了什么,这是如何调用的?

0 投票
0 回答
23 浏览

mysql - 为什么我导入 mysqldump 文件时我的所有程序都运行?

我从 cmd 终端执行以下语句来导入我的 MySQL 数据库:

当我从 MySQL Workbench 打开我的 MySQL 数据库时,我意识到创建了更多我不认识的表。基本上,发生了什么是我创建的存储过程/例程似乎自动运行并因此创建了更多表?我不想要这个,我宁愿使用 MySQL 中的“调用”语句执行例程,有没有办法阻止这种情况发生?