gpt4 book ai didi

c# - 调整大小和存储图像但锁定以确保它只完成一次

转载 作者:太空宇宙 更新时间:2023-11-03 16:14:08 26 4
gpt4 key购买 nike

我们有一些代码允许请求不同尺寸的图像,如果不存在,它会以该尺寸创建并存储它。我们遇到的问题是当图像不存在并且它第一次尝试创建它时会发出多个请求。

虽然我们目前不在网络农场或分布在我们想要到达的多台机器上,但我们需要的是一种锁定该部分的方法,而只有一个线程/进程创建重新调整大小的图像,然后允许任何线程继续返回图像。

在 ASP.NET C# 中跨多个线程/机器锁定的最佳方法是什么(在网络场场景中)。我想唯一真正的选择是使用某种数据库表,我们可以将锁存储在图像文件名/id 上,但其他线程是否必须继续调用数据库以查看锁是否已释放?

如果有人对这种情况有任何经验,我们将不胜感激。我们将 ASP.NET MVC 4 与 C# 4.5 和 SQL Server 2008 结合使用。

最佳答案

您是否计划在网络场中的每台服务器上生成相同的图像?如果可以,那么您可以使用 Dictionary<FileName, Key>并让任何想要创建图像的人请求 Key先展示这个Key到创建图像的方法。此方法将检查 key ,如果合适则生成图像,然后删除 Key .检查 Dictionary对于 Key对于指定的 FileNameKey被请求,如果已经存在则拒绝请求,否则锁定 Dictionary (它需要静态),重新检查任何现有的 Key , 生成并插入一个新的 Key进入Dictionary , 返回 Key .如果您只想要整个农场的一个图像实例,那么您将需要一个分布式缓存服务和某种将所有图像请求定向到正确服务器的方法 - 对我来说似乎打败了农场/负载平衡点

关于c# - 调整大小和存储图像但锁定以确保它只完成一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16315965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com