• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

TypeScript ratelimiter.get函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了TypeScript中ratelimiter.get函数的典型用法代码示例。如果您正苦于以下问题:TypeScript get函数的具体用法?TypeScript get怎么用?TypeScript get使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了get函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。

示例1: detectBriefInterval

			// 短い期間の方のリミット
			function detectBriefInterval(): void {
				const minIntervalLimiter = new Limiter({
					id: `${context.user.id}:${endpoint.name}:for-detect-brief-interval`,
					duration: endpoint.minInterval,
					max: 1,
					db: limiterDB
				});

				minIntervalLimiter.get((limitErr, limit) => {
					if (limitErr !== null) {
						return reply({
							error: 'something-happened'
						}).code(500);
					} else if (limit.remaining === 0) {
						return reply({
							error: 'brief-interval-detected'
						}).code(429);
					} else {
						if (endpoint.hasOwnProperty('limitDuration') && endpoint.hasOwnProperty('limitMax')) {
							rateLimit();
						} else {
							call();
						}
					}
				});
			}
开发者ID:akionux,项目名称:Misskey-API,代码行数:27,代码来源:api-handler.ts


示例2: min

	// Short-term limit
	function min() {
		const minIntervalLimiter = new Limiter({
			id: `${user._id}:${key}:min`,
			duration: limitation.minInterval,
			max: 1,
			db: limiterDB
		});

		minIntervalLimiter.get((err, info) => {
			if (err) {
				return reject('ERR');
			}

			log(`@${getAcct(user)} ${endpoint.name} min remaining: ${info.remaining}`);

			if (info.remaining === 0) {
				reject('BRIEF_REQUEST_INTERVAL');
			} else {
				if (hasLongTermLimit) {
					max();
				} else {
					ok();
				}
			}
		});
	}
开发者ID:ha-dai,项目名称:Misskey,代码行数:27,代码来源:limitter.ts


示例3: max

	// Long term limit
	function max(): void {
		const limiter = new Limiter({
			id: `${ctx.user._id}:${limitKey}`,
			duration: endpoint.limitDuration,
			max: endpoint.limitMax,
			db: limiterDB
		});

		limiter.get((limitErr, limit) => {
			if (limitErr) {
				reject('ERR');
			} else if (limit.remaining === 0) {
				reject('RATE_LIMIT_EXCEEDED');
			} else {
				ok();
			}
		});
	}
开发者ID:syuilo,项目名称:misskey-core,代码行数:19,代码来源:limitter.ts


示例4: rateLimit

			// 長い期間の方のリミット
			function rateLimit(): void {
				const limiter = new Limiter({
					id: `${context.user.id}:${limitKey}`,
					duration: endpoint.limitDuration,
					max: endpoint.limitMax,
					db: limiterDB
				});

				limiter.get((limitErr, limit) => {
					if (limitErr !== null) {
						return reply({
							error: 'something-happened'
						}).code(500);
					} else if (limit.remaining === 0) {
						return reply({
							error: 'rate-limit-exceeded'
						}).code(429);
					} else {
						call();
					}
				});
			}
开发者ID:akionux,项目名称:Misskey-API,代码行数:23,代码来源:api-handler.ts


示例5: max

	// Long term limit
	function max() {
		const limiter = new Limiter({
			id: `${user._id}:${key}`,
			duration: limitation.duration,
			max: limitation.max,
			db: limiterDB
		});

		limiter.get((err, info) => {
			if (err) {
				return reject('ERR');
			}

			log(`@${getAcct(user)} ${endpoint.name} max remaining: ${info.remaining}`);

			if (info.remaining === 0) {
				reject('RATE_LIMIT_EXCEEDED');
			} else {
				ok();
			}
		});
	}
开发者ID:ha-dai,项目名称:Misskey,代码行数:23,代码来源:limitter.ts


示例6: min

	// Short-term limit
	function min(): void {
		const minIntervalLimiter = new Limiter({
			id: `${ctx.user._id}:${limitKey}:min`,
			duration: endpoint.minInterval,
			max: 1,
			db: limiterDB
		});

		minIntervalLimiter.get((limitErr, limit) => {
			if (limitErr) {
				reject('ERR');
			} else if (limit.remaining === 0) {
				reject('BRIEF_REQUEST_INTERVAL');
			} else {
				if (hasRateLimit) {
					max();
				} else {
					ok();
				}
			}
		});
	}
开发者ID:syuilo,项目名称:misskey-core,代码行数:23,代码来源:limitter.ts


示例7: Limiter

import * as redis from 'redis';
import * as Limiter from 'ratelimiter';

declare let id: string;
declare let db: redis.RedisClient;
let limit = new Limiter({ id: id, db: db });

const str: string = limit.inspect();

limit.get((err, limit): void => {
	const total: number = limit.total;
	const remaining: number = limit.remaining;
	const reset: number = limit.reset;
});
开发者ID:AbraaoAlves,项目名称:DefinitelyTyped,代码行数:14,代码来源:ratelimiter-tests.ts



注:本文中的ratelimiter.get函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
TypeScript raven.captureException函数代码示例发布时间:2022-05-25
下一篇:
TypeScript randomstring.generate函数代码示例发布时间:2022-05-25
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap