77 lines
2.1 KiB
Objective-C
77 lines
2.1 KiB
Objective-C
//
|
|
// QNTransactionManager.h
|
|
// QiniuSDK
|
|
//
|
|
// Created by yangsen on 2020/4/1.
|
|
// Copyright © 2020 Qiniu. All rights reserved.
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
@interface QNTransaction : NSObject
|
|
|
|
/// 事务名称
|
|
@property(nonatomic, copy, readonly)NSString *name;
|
|
/// 事务延迟执行时间 单位:秒
|
|
@property(nonatomic, assign, readonly)NSInteger after;
|
|
/// 事务内容
|
|
@property(nonatomic, copy, readonly)void(^action)(void);
|
|
/// 是否正在执行
|
|
@property(nonatomic, assign, readonly)BOOL isExecuting;
|
|
|
|
/// MARK: -- 构造方法
|
|
/// 普通事务,事务体仅仅执行一次
|
|
/// @param name 事务名称
|
|
/// @param after 事务延后时间 单位:秒
|
|
/// @param action 事务体
|
|
+ (instancetype)transaction:(NSString *)name
|
|
after:(NSInteger)after
|
|
action:(void(^)(void))action;
|
|
/// 定时事务
|
|
/// @param name 事务名称
|
|
/// @param after 事务延后时间 单位:秒
|
|
/// @param interval 事务执行间隔 单位:秒
|
|
/// @param action 事务体
|
|
+ (instancetype)timeTransaction:(NSString *)name
|
|
after:(NSInteger)after
|
|
interval:(NSInteger)interval
|
|
action:(void(^)(void))action;
|
|
|
|
@end
|
|
|
|
|
|
#define kQNTransactionManager [QNTransactionManager shared]
|
|
@interface QNTransactionManager : NSObject
|
|
|
|
/// 单例构造方法
|
|
+ (instancetype)shared;
|
|
|
|
/// 根据name查找事务
|
|
/// @param name 事务名称
|
|
- (NSArray <QNTransaction *> *)transactionsForName:(NSString *)name;
|
|
|
|
/// 是否存在某个名称的事务
|
|
/// @param name 事务名称
|
|
- (BOOL)existTransactionsForName:(NSString *)name;
|
|
|
|
/// 添加一个事务
|
|
/// @param transaction 事务
|
|
- (void)addTransaction:(QNTransaction *)transaction;
|
|
|
|
/// 移除一个事务
|
|
/// @param transaction 事务
|
|
- (void)removeTransaction:(QNTransaction *)transaction;
|
|
|
|
/// 在下一次循环执行事务, 该事务如果未被添加到事务列表,会自动添加
|
|
/// @param transaction 事务
|
|
- (void)performTransaction:(QNTransaction *)transaction;
|
|
|
|
/// 销毁资源 清空事务链表 销毁常驻线程
|
|
- (void)destroyResource;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|