一个发布项目用的接口,需要做这些操作:
请问这个接口应该怎么设计?因为整体比较耗时,有可能在中间上传文件的过程中失败。
我先谈下我的理解:
分开成多个接口
1、申请上传口令(检查状态,标记处理中),如果存在并发,标记处理这里可以引入分布式锁,或者简单的 Redis setnx。
2、上传图片(根据上传口令直传对象存储)
3、改写项目状态(发布,解除处理中标记)
其实建议你上传和发布其实可以分开来,理论上,你可以弄一个素材库,用户可以先独立把资源上传到素材库中,用户只要在发布任务过程中,选择素材库里的已上传的内容就行了
这样做就把发布与上传隔离开来了,也不用特意去出对项目状态加锁,或者说因为某个文件没有上传成功,导致不能发布其他项目
问题内容: 我手头有问题,但无法获得要使用的设计模式。问题是这样的: 我必须构建一个具有“ N”个状态的系统,并且我的系统必须根据某些条件从任何状态转换为任何其他状态。示例:在条件1下,从状态1移到状态3,在条件2下从状态1移到状态4。 甚至从一种状态到另一种状态的转变都可以在2种或更多种不同的条件下完成。 例如,在以下 情况下可以完成从状态1到状态3的转换:条件1:“ Its a Sunday”
我有一个获取发票的方法,它创建XML并将该XML发送到JMS队列,然后将发票保存到DB,更新状态为“invoinced”。下面是涉及Spring和Hibernate的伪代码。我的问题是:hibernate save rollsback Jms发送失败。或者,如果JMS发送失败,我如何回滚保存发票状态?这属于分布式事务管理。这里涉及哪些交易案例。谢谢
#全局事务状态表 状态 代码 备注 全局事务开始(Begin) 1 此状态可以接受新的分支事务注册 全局事务提交中(Committing) 2 这个状态会随时改变 全局事务提交重试(CommitRetry) 3 在提交异常被解决后尝试重试提交 全局事务回滚中(Rollbacking) 4 正在重新回滚全局事务 全局事务回滚重试中(RollbackRetrying) 5 在全局回滚异常被解决后尝试事
问题内容: 我有一个Go函数,用于包装来自的函数。 这是完整的 C原型 : 可以在这里找到(至少在我的系统上)。 遵循Go代码: 除非删除对and 子句的调用,否则不会编译此代码。 该方法只能在 Mac OS X上使用, 并且如果从代码中删除, 则实际上可以 使用。 在收到以下错误消息后,以其实际形式显示:( 仅此而已,这就是整个编译器的输出)。 删除对我来说是不可接受的,我必须找到如何正确释放分
大家好,请看我的问题: 现有微服务A、微服务B,两个服务链接的是不同的数据库而且不在同一个机器上。 微服务A中的数据库人员表(base_user)存放了一万条人员信息,微服务B中需要调用A的接口,将没有调入过的人员列表查询出来(然后在前端勾选后调入到B的sys_user表中)。 我的实现方式是: 首先从B的sys_user中查询出所有的人员id列表,然后通过该id列表调用A的接口,A的接口执行my
我如何方便地在一个spring MVC请求处理程序中有条件地设置HTTP状态代码? 我有一个响应POST请求的请求处理程序,用于创建新资源。如果请求有效,我希望它重定向到新资源的URI,返回201(已创建)HTTP状态代码。如果请求是无效的,我希望它给用户一个机会来纠正提交的表单中的错误,而不应该给出201的状态代码。 } 但这不会给出重定向情况的正确响应状态。 我不能简单地添加一个,因为有两种可