AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-12326149

dan-kli's questions

Martin Hope
dan-kli
Asked: 2025-04-29 00:13:46 +0800 CST

在触发器中锁定一行

  • 6

我有两张 PostgreSQL 表:objects和metadata。每个对象都有一个size属性,表示其大小(以字节为单位),并且可以存储在一个唯一的位置storage_id。元数据中维护了total_size每个存储中所有对象的 ,每个存储的 都具有给定的storage_id。简化表格:

CREATE TABLE IF NOT EXISTS objects (
  object_id UUID PRIMARY KEY,
  storage_id UUID NOT NULL,
  size BIGINT NOT NULL,
  FOREIGN KEY (storage_id) REFERENCES metadata(storage_id)
);

CREATE TABLE IF NOT EXISTS metadata (
  storage_id UUID PRIMARY KEY,
  total_size BIGINT DEFAULT 0
);

为了维护表total_size中的内容metadata,我有一个触发器,每当插入或删除对象时,total_size就会更新,即这里是插入的触发器:

CREATE OR REPLACE FUNCTION update_size_on_insert() RETURNS TRIGGER AS $$
BEGIN
  UPDATE metadata
  SET total_size = total_size + NEW.size
  WHERE storage_id = NEW.storage_id;
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE OR REPLACE TRIGGER trg_update_size_on_insert
AFTER INSERT ON objects
FOR EACH ROW
EXECUTE FUNCTION update_size_on_insert();

问题是并发插入/删除操作可能会覆盖 ,total_size从而导致数据无效。如何更改触发器,使其在 执行时包含行级SET total_size = total_size + NEW.size锁?我考虑过FOR UPDATE语句,但这需要一个SELECT。我可以使用PERFORM ... FOR UPDATE;来锁定行吗?

sql
  • 1 个回答
  • 67 Views
Martin Hope
dan-kli
Asked: 2024-10-04 16:54:49 +0800 CST

PowerShell 调用运算符“&”是否等待命令完成?

  • 5

我们正在使用调用运算符&在自动化过程中运行可执行文件:

& $pathToExecutable

现在看来,PowerShell 本身并不等待此可执行文件完成并继续执行脚本,这导致我们的自动化流程在某些用例中失败。调用运算符是否不等待已启动的进程完成,还是仅在某些条件下或特定类型的命令下等待?

调用操作符的文档没有提到它是否等待,它只是说命令在子作用域中运行。我觉得默认情况下你会期望它以同步方式运行命令,并在该命令完成后执行下一行。

powershell
  • 1 个回答
  • 37 Views
Martin Hope
dan-kli
Asked: 2024-09-02 19:47:59 +0800 CST

如何为 gRPC 客户端工厂创建的 gRPC 客户端设置通用截止时间?

  • 6

按照.NET 中的 gRPC 客户端工厂集成,我可以像这样注册一个 gRPC 客户端:

builder.Services.AddGrpcClient<Greeter.GreeterClient>(o =>
{
    o.Address = new Uri("https://localhost:5001");
});

现在我想为与该客户的所有通话设置一个通用截止时间。可能像这样:

int deadline = ReadFromConfig();

builder.Services.AddGrpcClient<Greeter.GreeterClient>(o =>
{
    o.Address = new Uri("https://localhost:5001");
    o.CallOptionsActions.Add(o => 
        o.CallOptions.Deadline = DateTime.UtcNow.AddSeconds(deadline))
});

但是,这里的调用选项中的截止日期是只读的。我似乎无法在这里设置它。我做错了吗,还是只能在发出请求时设置截止日期?

c#
  • 1 个回答
  • 16 Views
Martin Hope
dan-kli
Asked: 2023-12-11 22:41:08 +0800 CST

在 C# 中,如何用函数参数中的委托替换 Func?

  • 5

查看以下函数,它需要另一个具有输出类型的 FunctionT并简单地调用它返回结果:

T CallFunction<T>(Func<T> lambda)
{
  return lambda();
}

我希望我可以替换Func<T> lambda为delegate T lambda<T>(). 但这似乎不可能,我不能做类似的事情:

T CallFunction<T>(delegate T lambda<T>())
{
  return lambda();
}

或者:

delegate T MyLambda<T>();

T CallFunction<T>(MyLambda lambda)
{
  return lambda();
}

只是我的语法错误还是我还没有完全理解Delegate和Func是什么?在这种情况下,不Func<T> lambda只是一个返回类型的委托吗?T

c#
  • 2 个回答
  • 66 Views
Martin Hope
dan-kli
Asked: 2023-12-04 22:04:04 +0800 CST

C# System.Commandline:如何向命令添加参数以便可以向其传递值?

  • 7

以下简单的命令Program.cs需要一个定义的根命令的参数:

using System.CommandLine;

var inputArgument = new Argument<string>(
  name: "--input", 
  description: "input any value and print it out");

var rootCommand = new RootCommand();
rootCommand.AddArgument(inputArgument);
rootCommand.SetHandler((inputArgumentValue) =>
{
  Console.WriteLine($"{inputArgumentValue}");
}, inputArgument);

rootCommand.Invoke(args);

我希望使用以下参数调用它:在 shell 中--input "Hello World"打印出Hello World 。但是我收到以下错误:

Unrecognized command or argument 'Hello World'.

当我用Option替换Argument类时,它按预期工作:

using System.CommandLine;

var inputArgument = new Option<string>(
  name: "--input", 
  description: "input any value and print it out");

var rootCommand = new RootCommand();
rootCommand.AddOption(inputArgument);
rootCommand.SetHandler((inputArgumentValue) =>
{
  Console.WriteLine($"{inputArgumentValue}");
}, inputArgument);

rootCommand.Invoke(args);

我对课堂有什么误解Argument?为什么我不能传递一个带有值的参数?


由于其其他属性,我想使用参数类而不是选项。我正在使用 .NET 6.0 和 System.CommandLine 版本 2.0.0-beta4.22272.1

c#
  • 1 个回答
  • 51 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve