pageviews

in blogs/ecs-service-connectivity/yelb/yelb-appserver/modules/pageviews.rb [3:34]


def pageviews()
        if ($yelbddbcache != nil && $yelbddbcache != "") then
                dynamodb = Aws::DynamoDB::Client.new(region: $awsregion)
                params = {
                    table_name: $yelbddbcache,
                    key: {
                        counter: 'pageviews'
                    }
                }
                pageviewsrecord = dynamodb.get_item(params)
                pageviewscount = pageviewsrecord.item['pageviewscount']
                pageviewscount += 1 
                params = {
                        table_name: $yelbddbcache,
                        key: {
                            counter: 'pageviews'
                        },
                        update_expression: 'set pageviewscount = :c',
                        expression_attribute_values: {':c' => pageviewscount},
                        return_values: 'UPDATED_NEW'
                }
                pageviewrecord = dynamodb.update_item(params)
        else 
                redis = Redis.new
                redis = Redis.new(:host => $redishost, :port => 6379)
                redis.incr("pageviews")
                pageviewscount = redis.get("pageviews")
                redis.quit()
        end
        return pageviewscount.to_s
end