Перейти до

Баг пороговой системы


Рекомендованные сообщения

Наблюдаю уже полгода глюк в разных версиях сервера...

Делаю тариф с пороговой системой.

Например до 1гига трафик считается по 20 копеек за мб, после гига по 10 копеек.Ставлю этот тариф пользователю. Все работает нормально, порог в гигабайт отрабатывает правильно и начинает считать по 10 копеек, но при превышении суммарного трафика за 2 гига начинает опять считать по допороговой цене, т.е. по 20 копеек :)

Вот такая забавка ставил разные версии, хоть убейте не хочу верить в то что это персонально у меня такой баг.

Помогите плз

Ссылка на сообщение
Поделиться на других сайтах

я вообще в тарифах порог не трогаю

написал скрипт, который раз в минуту (клиентов не много) берёт D клиента и если оно выше порога - переключить на др. тариф

так можно сколько угодно порогов задать

а первого числа всех вернуть на начальный тариф

Ссылка на сообщение
Поделиться на других сайтах
я вообще в тарифах порог не трогаю

написал скрипт, который раз в минуту (клиентов не много) берёт D клиента и если оно выше порога - переключить на др. тариф

так можно сколько угодно порогов задать

а первого числа всех вернуть на начальный тариф

прикольная штучка - поделись скриптами :loop:

Ссылка на сообщение
Поделиться на других сайтах

тарифы меняются с помощью консольного конфигуратора

написано так себе, можно в 1 файл объединить

названия тарифов: unlim, 1_2, 1, 0_8, 0_6, 0_3

checker.sh - раз в минуту по крону

#!/bin/sh

workdir="/var/stargazer/users"

cd $workdir

for i in *; do /root/stg/changer.sh $i; done

changer.sh

#!/bin/sh

sgconf="/root/stg/sgconf"
server="127.0.0.1"
port="5555"
admin="xxx"
pass="xxx"
workdir="/var/stargazer/users"
user=`echo $1 | sed 's/.\///g'`

echo $user

cd $workdir
cd $1

tariff=`cat conf | grep 'Tariff=' | sed 's/Tariff=//g'`

#если тариф не "анлим" и не "1_2", то шагаем по ступеням 1 -> 0,8 -> 0,6 -> 0,3
if [ $tariff != "unlim" ] && [ $tariff != "1_2" ]; then
       d=`grep D1 stat | sed 's/D1=//g'`
       u=`grep U1 stat | sed 's/U1=//g'`
       s=`echo $(($d+$u))`               #учёт трафика = up+down
       echo $s
       if [ $s -ge 52428800 ]; then
               if [ $s -ge 209715200 ]; then
                       if [ $s -ge 524288000 ]; then
                               blah='0_3'
                       else
                               blah='0_6'
                       fi
               else
                       blah='0_8'
               fi
       fi

fi

$sgconf -s $server -p $port -a $admin -w $pass -u $user -t $blah:now

ну и по аналогии с предыдущими, раз в месяц (в начале учётного периода) надо запускать возврат на тариф 1

        if [ $tariff = "0_8" ] || [ $tariff = "0_6" ] || [ $tariff = "0_3" ]; then
               $sgconf -s $server -p $port -a $admin -w $pass -u $user -t 1:now
       fi

кто бы мне ещё рассказал как исправить не правильный подсчёт трафика :)

(подсказывать тут http://local.com.ua/forum/index.php?showtopic=6675)

Ссылка на сообщение
Поделиться на других сайтах
  • 3 weeks later...

Толькочто проверил данную фичу на stg-2.402

Создал тариф с порогом в 2 мегабайта и стоимостью за мег 0/10у.е.

На счет положил 21у.е.

Получается что если есть баг в пороговой системе, то скачаться должно 2(до порога)+2(после порога и сняться со счета 20 у.е.)+2(повторно до порога)+0.1(остаток в 1у.е.)

Итого 6.1 метра

И если бага нет, то 2+2.1=4.1 метра

wget --limit-rate=30000 http://download.microsoft.com/download/C/A...br>--13:53:57--  http://download.microsoft.com/download/C/A/B/CAB13EF7-5652-4CC9-8ECB-64F857E5D065/wmp11-windowsxp-x86-ru-ru.exe
          => `wmp11-windowsxp-x86-ru-ru.exe.2'
Resolving download.microsoft.com... 84.53.136.166, 84.53.136.158
Connecting to download.microsoft.com|84.53.136.166|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25,839,664 (25M) [application/octet-stream]

16% [=====>                               ] 4,340,479     --.--K/s    ETA 12:44

Видно что скачалось 4,340,479/(1024*1024)=4,13940334320068359375

У пользователя на счете осталось -0.578

Расшифровка тарифа

cat /var/stargazer/tariffs/test.tf
Fee=0.000000
Free=0.000000
NoDiscount0=0
NoDiscount1=0
NoDiscount2=0
NoDiscount3=0
NoDiscount4=0
NoDiscount5=0
NoDiscount6=0
NoDiscount7=0
NoDiscount8=0
NoDiscount9=0
PassiveCost=0.000000
PriceDayA0=0.000000
PriceDayA1=0.000000
PriceDayA2=0.000000
PriceDayA3=0.000000
PriceDayA4=0.000000
PriceDayA5=0.000000
PriceDayA6=0.000000
PriceDayA7=0.000000
PriceDayA8=0.000000
PriceDayA9=0.000000
PriceDayB0=0.000000
PriceDayB1=0.000000
PriceDayB2=10.000000
PriceDayB3=0.000000
PriceDayB4=0.000000
PriceDayB5=0.000000
PriceDayB6=0.000000
PriceDayB7=0.000000
PriceDayB8=0.000000
PriceDayB9=0.000000
PriceNightA0=0.000000
PriceNightA1=0.000000
PriceNightA2=0.000000
PriceNightA3=0.000000
PriceNightA4=0.000000
PriceNightA5=0.000000
PriceNightA6=0.000000
PriceNightA7=0.000000
PriceNightA8=0.000000
PriceNightA9=0.000000
PriceNightB0=0.000000
PriceNightB1=0.000000
PriceNightB2=0.000000
PriceNightB3=0.000000
PriceNightB4=0.000000
PriceNightB5=0.000000
PriceNightB6=0.000000
PriceNightB7=0.000000
PriceNightB8=0.000000
PriceNightB9=0.000000
SinglePrice0=1
SinglePrice1=1
SinglePrice2=1
SinglePrice3=0
SinglePrice4=0
SinglePrice5=0
SinglePrice6=0
SinglePrice7=0
SinglePrice8=0
SinglePrice9=0
Threshold0=0
Threshold1=0
Threshold2=2
Threshold3=0
Threshold4=0
Threshold5=0
Threshold6=0
Threshold7=0
Threshold8=0
Threshold9=0
Time0=0:0-0:0
Time1=0:0-0:0
Time2=0:0-0:0
Time3=0:0-0:0
Time4=0:0-0:0
Time5=0:0-0:0
Time6=0:0-0:0
Time7=0:0-0:0
Time8=0:0-0:0
Time9=0:0-0:0
TraffType=up+down

Лог Пользователя

2006-12-30 10:46:26 -- Connect, 192.168.178.200
2006-12-30 10:50:08 -- Disconnect,  session upload: '0,0,67546,0,0,0,0,0,0,0' se                                          ssion download: '0,0,4529579,0,0,0,0,0,0,0' month upload: '0,0,67546,0,0,0,0,0,0                                          ,0' month download: '0,0,4529579,0,0,0,0,0,0,0' cash: '-0.577606'

Стата пользователя

cat /var/stargazer/users/test1/stat
Cash=-0.577606
D0=0
D1=0
D2=4529579
D3=0
D4=0
D5=0
D6=0
D7=0
D8=0
D9=0
FreeMb=-26.183853
LastActivityTime=1167486608
LastCashAdd=21.000000
LastCashAddTime=1167486386
PassiveTime=2505599
U0=0
U1=0
U2=67546
U3=0
U4=0
U5=0
U6=0
U7=0
U8=0
U9=0

 

Помоему здесь всё сработало как надо

Или я что-то не так понял?

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...